java事件监听器无效_Java的事件监听器学习心得
在Java的swing編程中,Java中的事件機制非常常用
一. 事件監聽器的參與者:
1.事件對象:
一般繼承自java.util.EventObject對象,由開發者自行定義.
2.事件源:
就是觸發事件的源頭,不同的事件源會觸發不同的事件類型.
3.事件監聽器:
事件監聽器負責監聽事件源發出的事件.一個事件監聽器通常實現java.util.EventListener這個標識接口.
其整個處理過程是這樣的,事件源可以注冊事件監聽器對象,并可以向事件監聽器對象發送事件對象.事件發生后,事件源將事件對象發給已經注冊的所有事件監聽器.
監聽器對象隨后會根據事件對象內的相應方法響應這個事件.
二 具體的DEMO實例
下面通過一下簡單的DEMO來看下事件監聽器的處理過程.
1.事件對象的定義
import java.util.EventObject;
public class DemoEvent extends EventObject {
private static final long serialVersionUID = -2421553409758288940L;
public DemoEvent(Object source) {
super(source);
}
}
2.定義事件監聽器
(1)DemoEvent事件監聽器接口
import java.util.EventListener;
public interface DemoEventListener extends EventListener {
public void processEvent(DemoEvent demoEvent);
}
(2)第一個具體的事件監聽器
public class FirstEventListener implements DemoEventListener {
public void processEvent(DemoEvent demoEvent) {
System.out.println("First event listener process event...");
}
}
(3)第二個具體的事件監聽器
public class SecondEventListener implements DemoEventListener {
public void processEvent(DemoEvent demoEvent) {
System.out.println("Second event listener process event...");
}
}
public class EventSource {
private List listeners = new ArrayList();
public EventSource() {
}
public void addDemoListener(DemoEventListener demoListener) {
listeners.add(demoListener);
}
public void notifyDemoEvent() {
for (DemoEventListener eventListener : listeners) {
DemoEvent demoEvent = new DemoEvent(this);
eventListener.processEvent(demoEvent);
}
}
}
4.測試事件監聽器的整個處理過程
public class DemoEventClient {
public static void main(String args[]) {
//定義事件源
EventSource eventSource = new EventSource();
//定義并向事件源中注冊事件監聽器
FirstEventListener firstEventListener = new FirstEventListener();
eventSource.addDemoListener(firstEventListener);
//定義并向事件源中注冊事件監聽器
SecondEventListener secondEventListener=new SecondEventListener();
eventSource.addDemoListener(secondEventListener);
//事件通知
eventSource.notifyDemoEvent();
}
}
總結
以上是生活随笔為你收集整理的java事件监听器无效_Java的事件监听器学习心得的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛谷 P2735 电网 Electri
- 下一篇: Java 匿名存储过程_Java