隨筆 - 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 閱讀(171) 評論(0)  編輯  收藏 所屬分類: j2se
          主站蜘蛛池模板: 沂源县| 红河县| 慈溪市| 嵊泗县| 庆安县| 大方县| 财经| 寿光市| 上蔡县| 临桂县| 沈丘县| 安阳县| 商都县| 台东县| 格尔木市| 通化县| 手机| 西林县| 上虞市| 西安市| 浮梁县| 英吉沙县| 邵阳市| 泾阳县| 武夷山市| 麻江县| 深水埗区| 秭归县| 乡城县| 隆尧县| 偃师市| 内江市| 广河县| 霍城县| 辽宁省| 临汾市| 山西省| 台东县| 曲靖市| 封开县| 乐清市|