JAVA中事件处理机制是观察者模式或者说委托(授权)管理的一种。
1、在理解JAVA中事件处理机制前我们必须先理解三个重要的概念:
事件源:产生事件的对象;
事件处理器(监听器):负责处理事件的方法。
事件对象:用于在事件源与事件处理器间传递信息的桥梁。
它们之间的关系是:当事件源产生事件时,通过事件调用监听器相应的事件处理方法。
2、通过恋爱关系模拟事件处理机制:女孩子(事件源)产生高兴或不高兴的情绪(事件对象)时,男朋友(监听器)应该怎么做。
1、确定三个类:Gril,Emotion,Boy
2、Gril:要有一个名字属性,一个男朋友的属性(不可能满大街随便找个人给听你发牌气吧),还有一个add添加男朋友的方法。还有一个remove分手的方法。
Boy:要有一个名字属性,要有happy,和unhappy的两个在女朋友找你时做相应处理的方法。
Emotion:是一个事件对象,凭什么它就是一个事件对象呀,它要继承EventObject吧。查帮助看下。其中有一个方法getSource,通过这个方法就可以找到事件源了吧。通过查看EventObject构造方法,没有无参的构造方法,而创建对象默认是向上调用父类无参构造方法的,这样会出现错误,所以我们必须写一个含参的调用父类构造方法。
3、Boy要根据Gril产出的不同事件对象使用不同的处理方法时,要接受事件对象(Emotion)的传入吧。即方法接收传入参数。
4、Gril:有一个发牌气的方法fire,假设她1,3,5 happy,2,4,6 unhappy,7分手。
5、前面已经实现了事件处理机制模型,为了更完善点使程序有多个男孩子追,并且加入异常处理。
public class Gril {
String name;
Boy b;// 男朋友的属性
public Gril(String name) {
this.name = name;
}
public void addBoy(Boy b) throws MyHeartException // 相当注册监听器
{// 添加男朋友
if (this.b == null) {
this.b = b;
System.out.println("haha,I have boyfriend now");
} else {
throw new MyHeartException("I have boyfriend,wait me for a week");
}
}
public void remove() {
this.b = null;
System.out.println("sorry,you never understand me!");
}
public void fire() {
if (b == null)
System.out.println("I have not boyfriend now!");
else {
Emotion e = new Emotion(this);
for (int i = 1; i < 7; i++) {
if (i % 2 == 0)
b.unhappy(e);
else {
b.happy(e);
}
}
remove();
}
}
}
public class Boy {
String name;
public Boy(String name) {
this.name = name;
}
public void happy(Emotion e) {
Gril g = (Gril) e.getSource();
System.out.println(name + " said :" + g.name + " you happy,I happy.");
}
public void unhappy(Emotion e) {
Gril g = (Gril) e.getSource();
System.out.println(name + " said :" + g.name
+ " Do not worry!you have my too!");
}
}
import java.util.EventObject;
public class Emotion extends EventObject {
public Emotion(Object src) {
super(src);
}
}
public class MyHeartException extends Exception {
public MyHeartException(String str) {
super(str);
}
}
分享到:
相关推荐
JavaGUI事件处理机制
JAVA事件处理机制 事件监听器 事件监听器适配器
java事件处理机制 java事件处理机制 java事件处理机制 java事件处理机制
java事件处理机制ppt 有3种角色: 1.event object:就是事件产生时具体的“事件”,用于listener的相应的方法之中,作为参数,一般存在与listerner的方法之中 2.event source:具体的接受事件的实体,比如说,你...
Java事件处理机制教学方法探讨.pdf
用Java事件处理机制实现录制回放功能用Java事件处理机制实现录制回放功能用Java事件处理机制实现录制回放功能
java事件处理机制.pdf
Java设计模式__观察者模式&事件处理机制(直接适用于项目)
Java事件处理机制- 事件监听器的四种实现方式 分析的非常好
Java的事件处理机制剖析
参考使用,欢迎下载
java GUI应用程序开发最重要的环节就是事件处理,即如何对用户操作...本文重在探究用于进行java GUI事件处理的委托事件模式及应用方式,该模式利用事件、事件源、事件监听者及其相互关系组织而成java GUI事件处理机制。
在Android应用程序中,有一类特殊的消息,是专门负责与用户进行交互的,它们就是触摸屏和键盘等输入事件。触摸屏和键盘事件是统一由系统输入管理器InputManager进行分发的。也就是说,InputManager负责从硬件接收...
Java和_Net事件处理机制的比较研究
Java中的事件处理机制.ppt
Java教学中事件处理机制的探讨.pdf
JAVA事件处理机制