原文來自: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為根的類層次中。當事件發生時,事件記錄發生的一切事件,並從事件源傳播到監聽器對象