一、监听器是什么
监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。
二、具体代码
先定义一个监听器DemoEventListener.java
package com.zhuyun.listener;
import java.util.EventListener;
/**
* 事件监听器
* @author administrator
*
*/
public class DemoEventListener implements EventListener {
public void processEvent(){
System.out.println("1+1=2");
};
}
再定义一个事件源,里面实现了监听器的注册以及触发监听器的方法
EventSource.java
package com.zhuyun.listener;
import java.util.ArrayList;
import java.util.List;
/**
* 定义事件源
* @author administrator
*
*/
public class EventSource {
private List<DemoEventListener> listeners = new ArrayList<DemoEventListener>();
public EventSource() {
}
public void addDemoListener(DemoEventListener demoListener) {
listeners.add(demoListener);
}
public void notifyDemoEvent() {
for (DemoEventListener eventListener : listeners) {
eventListener.processEvent();
}
}
}
三、测试代码
DemoEventClient.java
package com.zhuyun.listener;
/**
* 测试监听器处理过程
* @author administrator
*
*/
public class DemoEventClient {
public static void main(String args[]) {
//定义事件源
EventSource eventSource = new EventSource();
System.out.println("1+1=? 开始计算...");
//定义并向事件源中注册事件监听器
eventSource.addDemoListener(new DemoEventListener());
System.out.println("先溜达去了,算好了告诉我...");
try {
Thread.sleep(5000);
} catch (NumberFormatException | InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//事件通知
eventSource.notifyDemoEvent();
}
}
测试结果: