[img][/img]<div class="iteye-blog-content-contain" style="font-size: 14px"></div>
?
?
?
?
一.事件机制的组成
2.事件监听方法
3.事件处理类
1.1.事件源:一系列的可以接受相应动作的组件
例如:按钮,标签,面板,画布等等。。。
Q; 那我是不是可以说任何可以看到的对象都可以作为事件源呢?
A: 答案是肯定的。everything is ok!
1.2事件监听器方法:用来接收(获取)相应动作的方法
例如:动作监听器方法(addActionListener(ActionListener al))
按钮,标签,...单击,输入框中的回车操作
鼠标监听器方法(addMouseListener(MouseListener ml))
事件源上触发鼠标的按下,松开,单击,进入,离开的操作
鼠标移动监听器方法(addMouseMotionListene (MouseMotionListener mm))
事件源上触发鼠标移动或者鼠标按下拖动操作
键盘监听器方法(addKeyListener(KeyListener kl))
在事件源上按下键盘操作时触发该方法
1.3事件处理类:用来处理获取监听后的一系列处理。
首先,自定义一个类实现也可以说继承事件接口,也可也继承类(但是此类应该是接口的子类),当然此类中必须实现相应的处理方法。
比如:我要监听一个按钮(事件源),判断按下后我要对一个画布进行处理,并把画布的对象传给事件处理类,此时我自定义的类可以继承接口(MouseListener)也可以继承MouseListener 的子类MouseAdapter
五子棋的监听部分代码
import java.awt.Color; import java.awt.Graphics; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JOptionPane; public class FivechessListener extends MouseAdapter{ private Graphics g; private boolean flag = false; public FivechessListener(Graphics g) { // TODO Auto-generated constructor stub this.g = g; } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub int x = e.getX(); int y = e.getY(); //计算行列及余数,行列的余数大于2/3size,则列行加1 int X = (x - Digt.X) % Digt.size; int column = (x - Digt.X) / Digt.size; int Y = (y - Digt.Y) % Digt.size; int row = (y - Digt.X) / Digt.size; if(X> Digt.size/3*2){ column++; } if(Y> Digt.size/3*2){ row++; } //获取当前棋子的左上角坐标 int x1 = Digt.X + column*Digt.size - Digt.size/2; int y1 = Digt.Y + row*Digt.size - Digt.size/2; //黑白交替 if(Digt.array[row][column]==0){ if(flag == false){ g.setColor(Color.black); g.fillOval(x1,y1,Digt.size,Digt.size); flag = true; Digt.array[row][column]=-1; } else{ g.setColor(Color.white); g.fillOval(x1,y1,Digt.size,Digt.size); flag = false; Digt.array[row][column]=-1; } } //判断输赢 if(Winchess.is_winorfalse(row,column)){ if(g.getColor()==Color.black){ JOptionPane.showMessageDialog(null, "黑棋胜利"); }else { JOptionPane.showMessageDialog(null, "白棋胜利"); } } System.out.println("row = " + row + "\t column=" + column); } }
通过上面的比较抽象的描述如果你还是不太理解监听机制,我就用吃饭来类比一下喽!
首先,事件源我可以看做我们的肚子或者胃,当我们消耗卡路里后,我们一般都会有饥饿的感觉,而这种感觉会通过神经末梢(可以看成一种一种媒介)的传递会刺激我们的大脑,并促使我们的大脑发出命令,对我们的肢体进行控制,也就我饿了,到时间我们该吃饭了,然后我们就会屁颠屁颠的去食堂大吃一顿。
这里的监听方法可以看成是神经,然后大脑即使我们继承的父类,大脑里专门管饥饿的脑区就是我们的实体类(继承大脑这个接口),然后大脑会发出命令,我们行动起来这个过程就是我们实现的方法。相应的命令就是监听方法传过来的参数(对应的上面的代码即是画布对象)。
相关推荐
一件小事阅读答案一件小事阅读答案鲁迅.doc
【《一件小事》阅读答案】阅读题一件小事答案.docx
恋爱这件小事.doc
一件小事与管理资料.pdf
《一件小事》作文教学课件.ppt
那件小事激励着我作文(15篇).docx
环保行业:一件小事?垃圾分类的产业大机遇.pdf
【培训SOP】培训项目运营SOP-6大模块,53件小事,20张表单.xls
难忘的一件小事作文.doc
初中语文文摘情感约会这件小事
让自己变幸福的20件小事
一件小事___鲁迅.doc
优秀中考作文一件小事-.docx
整理了《架构师应该掌握的97件小事》这本手的全部思维,形成脑图。目前还有一些思维需要整理,欢迎大家指针
一件小事鲁迅读后感精选.doc
鲁迅一件小事读后感精选.doc
一件小事鲁迅读后感参考.doc
保护环境随手可做地100件小事.doc
保护环境随手可做的100件小事.doc
这是本人的网页设计期末大作业,关于梦想这件小事,里面有5个页面,需要的同学下载