周末有人问道我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。
分享到:
相关推荐
Java事件处理机制教学方法探讨.pdf
Java事件处理机制教学方法探讨
Java教学中事件处理机制的探讨.pdf
Java多线程机制探讨及实践.pdf
JAVA的异常处理机制探讨,java日常处理技术与在设计中的应用
垃圾收集GC(Garbage Collection)是Java语言的核心技术之一,之前我们曾专门探讨过Java 7新增的垃圾回收器G1的新特性,但在JVM的内部运行机制上看,Java的垃圾回收原理与机制并未改变。垃圾收集的目的在于清除不再...
关于Java多线程机制的探讨
Java多线程并发机制的应用探讨
Java多线程并发机制的应用探讨.pdf
Hibernate缓存机制探讨
垃圾收集GC(Garbage Collection)是Java语言的核心技术之一,之前我们曾专门探讨过Java 7新增的垃圾回收器G1的新特性,但在JVM的内部运行机制上看,Java的垃圾回收原理与机制并未改变。垃圾收集的目的在于清除不再...
此外,我们还会探讨Java程序的类加载器和双亲委派机制,以及自定义类加载器和类卸载的实现原理和应用方法。 总的来说,本资源将为Java程序员提供全面的Java字节码和类加载原理和实践经验。通过学习本资源,开发人员将...
import与package机制的探讨:撰写Java程序的人,绝对会遇到import与package机制。只要明白这个机制的运作原理,你会发现Java是一个设计优良的设计;Ant与Java;Java与Office;Visual Studio.net与Java;Java 2 SDK源...
深入探讨Java的类加载机制.mht
本文旨在探讨Java的\"异常机制\",分别介绍了\"异常类\"的组织形式、\"异常\"的处理过程、\"异常\"的处理方法及使用\"异常机制\"的需要注意的问题。
import与package机制的探讨:撰写Java程序的人,绝对会遇到import与package机制。只要明白这个机制的运作原理,你会发现Java是一个设计优良的设计;Ant与Java;Java与Office;Visual Studio.net与Java;Java 2 SDK源...
通过对java安全体制中权限控制机制的研究,探讨了java安全管理器、权限类、安全策略文件、自定制权限类等底层技术,提出通过这些技术,程序员可以细致的控制各个安全访问权限。
JAVA应用程序的运行机制 15 JVM(JAVA VIRTUAL MACHINE) 16 Java运行时环境JRE(Java Runtime Environment) 17 JAVA语言应用范围 18 第一个JAVA程序 18 JAVA开发环境搭建 18 一个典型的JAVA程序的编写和运行过程 19 第...
探讨Oracle数据库中实体化视图刷新的机制
import与package机制的探讨:撰写Java程序的人,绝对会遇到import与package机制。只要明白这个机制的运作原理,你会发现Java是一个设计优良的设计;Ant与Java;Java与Office;Visual Studio.net与Java;Java 2 SDK源...