一个事件监听机制(Event Listener)的例程
事件监听机制在java编程中有很重要的应用,一般我们在处理GUI编程时,只是重写一下监听接口的perform函数即可。但事件监听在底层是如何运行的?通过下面的例子我们可以有个清楚地了解。
1. 首先写一个事件类
public class NewEvent {
private int eventType=-1;
public NewEvent(int type){
eventType=type;
}
public int getEventType(){
return eventType;
}
}
2. 写一个事件监听器
public interface INewEventListener {
public void doProcessEvent(NewEvent event);
}
3. 写一个测试程序
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Source {
private List listeners = new ArrayList();
public void addNewEventListener(INewEventListener listener){//增加一个监听器
if(!listeners.contains(listener)){
listeners.add(listener);
}
}
public void fireEvent(NewEvent event){//触发事件
for (Iterator i=listeners.iterator(); i.hasNext();) {
INewEventListener listener = (INewEventListener)i.next();
listener.doProcessEvent(event);
}
}
public void GenerateEvent(int eventType){//生成一个指定类型的事件
fireEvent(new NewEvent(eventType));
}
//for test
public static void main (String [] args){
Source source = new Source ();
source.addNewEventListener(new INewEventListener(){//增加一个监听器,并实现这个监听器接口的方法
public void doProcessEvent(NewEvent event){
int eventType = event.getEventType();
System.out.println("EventType "+eventType+ " was triggered");
}
});
source.GenerateEvent(3);//生成一个eventType为3的事件
}
}
|
posted on 2009-04-05 08:39
lanxin1020 阅读(162)
评论(0) 编辑 收藏 所属分类:
j2se