Java事件驱动模式

Java事件驱动模式  

2008-06-26 13:02:17|  分类: java |字号 订阅

下面的文字摘自:

http://topic.csdn.net/t/20050616/14/4086908.html

只是为了自己收藏这个例子,

以免以后忘记了。


在一个类Class1中写一个事件event1,  

  当Class1中的某个值变化时,就触发event1,  

   

  然后写另外一个类Class2,监听Class1中的event1事件,  

   

//事件类 

public   class   A{  

          private   Vector   aListeners   =   new   Vector();  

          private   int   value;  

          public   int   getValue(){  

                  return   value;  

          }  

          public   void   setValue(int   newValue){  

                  if(value!=newValue){  

                          value   =   newValue;  

                          AEvent   evt=   new   AEvent(this,value);  

                          //如果值改变的话,就触发事件  

                          fireAEvent(evt);  

                  }  

          }  

          public   synchronized   void   addAListener(AListener   a){  

                  aListeners.addElement(a);  

          }  

          public   synchronized   void   removeAListener(Alistener   a){  

                  aListeners.removeElement(a);  

          }  

          public   void   fireAEvent(AEvent   evt){  

                  Vector   currentListeners   =   null;  

                  synchronized(this){  

                          currentListeners   =   (Vector)aListeners.clone();  

                  }  

                  for(int   i   =0;i<currentListeners.size();i++){  

                          AListener   listener   =   (AListener)currentListeners.elementAt(i);  

                          listener.performed(evt);  

                  }  

          }  

  }  

  //定义接口,当事件触发时调用  

  public   interface   AListener   extends   java.util.EventListener{  

          public   abstract   void   performed(AEvent   e);  

  }  

  //定义事件  

  public   class   AEvent   extends   EventObject{  

          private   int   value;  

          public   AEvent(Object   source){  

                  this(source,null);  

          }  

          public   AEvent(Object   source,int   newValue){  

                  super(source);  

                  value   =   newValue;  

          }  

  }  

  class   B{  

          public   B(){  

                  A   a   =   new   A();  

                  a.addAListener(new   AListener(){  

                          public   performed(AEvent   e){  

                                  //要处理的  

                          }  

                  });  

          }  

           

  }


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java事件驱动模型可以理解为一种异步编程机制,其核心在于监听事件并在事件发生时触发相应的处理逻辑。这种模型适用于需要高并发处理的场景,如网络编程、GUI编程等。 在Java中,事件驱动模型通常采用观察者模式实现。观察者模式是指当一个对象发生状态变化时,会通知其他观察者对象,让它们进行相应的处理。在事件驱动模型中,事件源对象会发出事件,观察者对象会监听事件并进行处理。 Java中的事件驱动模型通常包含以下几个组件: 1. 事件源(Event Source):事件源是指触发事件的对象,通常是某个组件或者方法。 2. 事件(Event):事件是指某个状态的变化或者某个动作的完成。事件通常包含事件源对象和事件类型。 3. 监听器(Listener):监听器是指负责监听事件的对象。在Java中,监听器通常实现了某个接口,如ActionListener、MouseListener等。 4. 事件处理器(Event Handler):事件处理器是指负责处理事件的对象。在Java中,事件处理器通常是监听器对象的一个方法,如actionPerformed()、mouseClicked()等。 Java中的事件驱动模型可以应用于多个场景,如GUI编程、网络编程、消息队列等。在实际应用中,需要根据具体的需求和场景,选择合适的事件驱动框架和技术,如Java AWT、Java Swing、Java NIO等。同时,需要注意事件驱动模型的线程安全问题,避免多线程并发访问导致的数据不一致或者死锁等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值