JAVA監聽器原理


原文來自:http://www.cnblogs.com/hulitut/archive/2012/03/27/2420414.html

Java 最新的事件處理方法是基於授權事件模型
事件源生成事件並將其發送至一個或多個監聽器
監聽器簡單地等待,直到它收到一個事件。一旦事件被接受,監聽器將處理這些事件,然后返回。

事件:在授權事件模型中,事件是一個描述事件源狀態改變的對象 。  
通過鼠標、鍵盤與 GUI 界面直接或間接交互都會生成事件。 如:按下一個按鈕、通過鍵盤輸入一個字符、選擇列表框中的一項、點擊一下鼠標等。

事件源:事件源是一個生成事件的對象
一個事件源可能會生成不同類型的事件
事件源提供了一組方法,用於為事件注冊一個或多個監聽器。
每種事件的類型都有其自己的注冊方法。一般形式為:
public void add<EventType>Listener (TypeListener e)
AWT采取的事件控制過程:監聽器對象屬於一個類的實例,這個類實現了一個特殊的接口,名為“監聽者接口”
事件源是一個對象,它可以注冊一個或多個監聽器對象,並向其發送事件對象。 
事件源將在發生事件時向所有注冊的監聽器發送事件對象。  
監聽器對象使用事件對象中的信息來確定它們對事件的響應

事件模型:
1.基於代理(授權)事件模型
事件處理是一個事件源授權到一個或者多個事件監聽器。其基本原理是:組件激發事件,事件監聽器監聽和處理事件,可以調用組件的add<EventType>Listener方法向組件注冊監聽器。把其加入到組件以后,如果組件激發了相應類型的事件,那么定義在監聽器中的事件處理方法會被調用。

2.此模型主要由以三種對象為中心組成
事件源       由它來激發產生事件
    是產生或拋出事件的對象。
事件監聽器  由它來處理事件
          實現某個特定EventListener 接口,此接口定義了一種或多種方法,事件源調用它們以響應該接口所處理的每一種特定事件類型 。
事件  具體的事件類型
    事件類型封裝在以java.util.EventObject為根的類層次中。當事件發生時,事件記錄發生的一切事件,並從事件源傳播到監聽器對象


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM