java 事件机制探讨
来源:互联网 发布:武林外传画画老人知乎 编辑:程序博客网 时间:2024/05/29 18:18
周末有人问道我java中事件机制是怎么实现的,天天只知道new一个事件适配器,今天结合网上的文章一起看看java中如何实现事件的监听。其实就是自定义事件。
其中有三个主要相关的类
1、EventObject
所有事件状态对象都将从其派生的根类。
所有 Event 在构造时都引用了对象 "source",在逻辑上认为该对象是最初发生有关 Event 的对象。
2、EventListener 接口
public interface EventListener
所有事件侦听器接口必须扩展的标记接口。
3、source 具体的接受事件的实体,比如说,你点击一个button,那么button就是event source,这样你必须使button对某些事件进行相应,你就需要注册特定的listener,比如说MouseEvent之中的 MouseClicked方法,这是他就必须有了add方法
package java1.base1.event1;import java.util.EventListener;import java.util.EventObject;public class DemoEvent extends EventObject { public DemoEvent(Object source) { super(source); }}
package java1.base1.event1;import java.util.EventListener;/** * @Title: Demolistener.java * @Description: <br> * <br> * @Company: ChinaSoft International * @Created on 2011-1-10 下午04:30:19 * @author chenhua * @version $Revision: 1.0 $ * @since 1.0 */public interface Demolistener extends EventListener { public void DemoEvent(DemoEvent de);}
package java1.base1.event1;import java.util.ArrayList;import java.util.Enumeration;import java.util.List;import com.sun.org.apache.bcel.internal.generic.NEW;/** * @Title: DemoSource.java * @Description: <br> * <br> * @Company: ChinaSoft International * @Created on 2011-1-10 下午04:34:16 * @author chenhua * @version $Revision: 1.0 $ * @since 1.0 */public class DemoSource { private List list=new ArrayList(); Demolistener dl; public void addDemoListener(Demolistener dl){ list.add(dl); } public void notifyDemoEvent(){ for(int i=0;i<list.size();i++){ dl=(Demolistener)list.get(i); dl.DemoEvent(new DemoEvent(dl)); } } }
package java1.base1.event1;/** * @Title: TestDemoEvent.java * @Description: <br> * <br> * @Company: ChinaSoft International * @Created on 2011-1-10 下午04:51:41 * @author chenhua * @version $Revision: 1.0 $ * @since 1.0 */public class TestDemoEvent { DemoSource Ds; public TestDemoEvent(){ try { Ds=new DemoSource(); Ds.addDemoListener(new Demolistener(){ public void DemoEvent(DemoEvent de) { System.out.println("spy-sky 455927885 "); } }); } catch (Exception e) { e.printStackTrace(); } Ds.notifyDemoEvent(); } /** * @param args */ public static void main(String[] args) { new TestDemoEvent(); }}
将EventObject子类作为参数,定义事件对应的listener接口。实现source。
0 0
- java 事件机制探讨
- Java回调机制探讨
- Java事件机制---自定义事件
- Java事件机制---自定义事件
- 深入探讨Java的类加载机制
- 深入探讨Java的类加载机制
- 深入探讨Java的类加载机制
- 深入探讨Java的类加载机制
- 深入探讨Java的类加载机制
- 深入探讨java类加载机制
- 探讨Java的类加载机制
- 深入探讨Java的类加载机制
- 深入探讨Java的类加载机制
- 深入探讨Java的类加载机制
- 深入探讨Java的类加载机制
- 深入探讨Java的类加载机制
- 【java并发】juc高级锁机制探讨
- 【java并发】juc高级锁机制探讨
- UID, EUID, SUID, FSUID
- 如何在maven-antrun-plugin中使用if条件标签
- RedHat5.8上安装RabbitMQ
- 掌握设计模式的方法总结(设计与模式)记
- 掌握设计模式的基础UML(设计与模式)记
- java 事件机制探讨
- 最快实现spring 实例
- DOM、SAX、JDOM、JAXB 对XML 文档的解析
- 反射示例
- java学习线路,至于你信不信,反正我信了
- CentOS7.1 最小化安装之初始配置
- UITableView自定义区头
- i9023手机不能上网 ,不能发信的解决方法
- MySQL中外键设置详解