隨筆 - 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 閱讀(177) 評論(0)  編輯  收藏 所屬分類: j2se
          主站蜘蛛池模板: 胶州市| 青冈县| 乐山市| 大洼县| 北京市| 苏尼特右旗| 岐山县| 密山市| 临湘市| 宁河县| 新河县| 新蔡县| 新泰市| 吉首市| 孟津县| 洛扎县| 临泽县| 泽库县| 玉溪市| 建水县| 封丘县| 辽源市| 韩城市| 商南县| 高淳县| 闻喜县| 平安县| 灌南县| 合作市| 绥宁县| 长治县| 凤山县| 永新县| 平果县| 阿城市| 宿松县| 观塘区| 高雄县| 阿巴嘎旗| 淮安市| 衢州市|