随笔 - 63  文章 - 0  trackbacks - 0
<2009年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用链接

留言簿(2)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

一个事件监听机制(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 阅读(157) 评论(0)  编辑  收藏 所属分类: j2se

只有注册用户登录后才能发表评论。


网站导航: