⑴ java 榧犳爣鐩戝惉浜嬩歡 mouseMoved(MouseEvent)
涓嶉渶瑕佸疄鐜癕ouseMotionListener鎺ュ彛錛屼綘宸茬粡鐢ㄤ簡addMouseMotionListener鏂規硶
MouseAdapter綾誨凡緇忔槸瀹炵幇浜哅ouseMotionListener鎺ュ彛鐨勩
鏀規垚
鍙浠ヨ繍琛屾垚鍔
⑵ java中的事件監聽是怎樣實現隨時監聽的,是通過線程嗎
java中的事件監聽不是通過線程實現的,它是通過一種注冊--通知機制實現的。在java的設計模式中,有一種模式叫:觀察者模式,和這個類似。
⑶ 鍏充簬java鐨勭洃鍚鍣
1銆乸ublic void addWindowListener(WindowListener l)娣誨姞鎸囧畾鐨勭獥鍙d睛鍚鍣錛屼互浠庢ょ獥鍙f帴鏀剁獥鍙d簨浠躲傚傛灉 l 涓 null錛屽垯涓嶆姏鍑轟換浣曞紓甯革紝涓斾笉鎵ц屼換浣曟搷浣溿
榪欎釜鏄疉PI涓鐨勬柟娉曞畾涔夛紝姝ゆ柟娉曞弬鏁頒負鎺ュ彛WindowListener錛屼換浣曞疄鐜拌ユ帴鍙g殑綾婚兘鍙浠ヤ綔涓哄弬鏁般
2銆乸ublic abstract class WindowAdapterimplements WindowListener, WindowStateListener, WindowFocusListener
鎺ユ敹紿楀彛浜嬩歡鐨勬娊璞¢傞厤鍣ㄧ被銆傛ょ被涓鐨勬柟娉曚負絀恆傛ょ被瀛樺湪鐨勭洰鐨勬槸鏂逛究鍒涘緩渚﹀惉鍣ㄥ硅薄銆
鎵╁睍姝ょ被鍙鍒涘緩 WindowEvent 渚﹀惉鍣ㄥ苟涓烘墍闇浜嬩歡閲嶅啓璇ユ柟娉曘傦紙濡傛灉瑕佸疄鐜
WindowListener 鎺ュ彛錛屽垯蹇呴』瀹氫箟璇ユ帴鍙e唴鐨勬墍鏈夋柟娉曘傛ゆ娊璞$被灝嗘墍鏈夋柟娉曢兘瀹氫箟涓
null錛屾墍浠ュ彧闇閽堝瑰叧蹇冪殑浜嬩歡瀹氫箟鏂規硶銆傦級
浣跨敤鎵╁睍鐨勭被鍙浠ュ壋寤轟睛鍚鍣ㄥ硅薄錛岀劧鍚庝嬌鐢ㄧ獥鍙g殑 addWindowListener
鏂規硶鍚戣ョ獥鍙f敞鍐屼睛鍚鍣ㄣ傚綋閫氳繃鎵撳紑銆佸叧闂銆佹縺媧繪垨鍋滅敤銆佸浘鏍囧寲鎴栧彇娑堝浘鏍囧寲鑰屾敼鍙樹簡紿楀彛鐘舵佹椂錛屽皢璋冪敤璇ヤ睛鍚鍣ㄥ硅薄涓鐨勭浉鍏蟲柟娉曪紝騫跺皢
WindowEvent 浼犻掔粰璇ユ柟娉曘
3銆佸傛灉鎴戞兂鍦ㄤ唬鐮佷腑涓嬈℃т嬌鐢ㄦ煇涓綾伙紙鎶借薄綾繪垨鍏蜂綋綾伙級鎴栨帴鍙o紝鍙浠ヤ嬌鐢ㄥ尶鍚嶇被鐨勬柟寮忥紝榪欐牱涓嶉渶鑷宸卞畾涔変竴涓狹y***綾伙紝鐒跺悗鍐嶄嬌鐢錛屾瘮杈冩柟渚褲傜敤娉曞氨鏄鐩存帴鍦╪ew WindowAdapter()鍚庨潰鍔犲叆綾誨畾涔夛紝鍦ㄥ叾涓瀹炵幇鎴栬嗙洊鏂規硶灝卞彲浠ヤ簡銆
鍖垮悕綾諱笉鏄榪斿洖鍊礆紝鑰屾槸鐩稿綋浜巒ew String(鈥渉ello鈥)榪欑嶇殑鎵╁睍褰㈠紡銆傛垜瑙夊緱鍖垮悕綾葷殑鏈澶氱敤澶勫氨鏄鍔犵洃鍚鍣ㄦ椂銆
闄勪笂WindowAdapter婧愪唬鐮侊細
implementsWindowListener,WindowStateListener,WindowFocusListener
{
publicvoidwindowOpened(WindowEvente){}
publicvoidwindowClosing(WindowEvente){}
publicvoidwindowClosed(WindowEvente){}
publicvoidwindowIconified(WindowEvente){}
publicvoidwindowDeiconified(WindowEvente){}
publicvoidwindowActivated(WindowEvente){}
publicvoidwindowDeactivated(WindowEvente){}
publicvoidwindowStateChanged(WindowEvente){}
publicvoidwindowGainedFocus(WindowEvente){}
publicvoidwindowLostFocus(WindowEvente){}
}
⑷ java監聽器原理
Java最新的事件處理方法是基於授權事件模型,事件源生成事件並將其發送至一個或多個監聽器,監聽器簡單地等待,直到它收到一個事件。一旦事件被接受,監聽器將處理這些事件,然後返回。
事件:在授權事件模型中,事件是一個描述事件源狀態改變的對象。 通過滑鼠、鍵盤與GUI界面直接或間接交互都會生成事件。如:按下一個按鈕、通過鍵盤輸入一個字元、選擇列表框中的一項、點擊一下滑鼠等。
事件源:事件源是一個生成事件的對象
一個事件源可能會生成不同類型的事件,事件源提供了一組方法,用於為事件注冊一個或多個監聽器。
每種事件的類型都有其自己的注冊方法。一般形式為:publicvoidadd<EventType>Listener(TypeListenere)
AWT採取的事件控制過程:監聽器對象屬於一個類的實例,這個類實現了一個特殊的介面,名為「監聽者介面」
事件源是一個對象,它可以注冊一個或多個監聽器對象,並向其發送事件對象。
事件源將在發生事件時向所有注冊的監聽器發送事件對象。
監聽器對象使用事件對象中的信息來確定它們對事件的響應
事件模型:
基於代理(授權)事件模型,事件處理是一個事件源授權到一個或者多個事件監聽器。其基本原理是:組件激發事件,事件監聽器監聽和處理事件,可以調用組件的add<EventType>Listener方法向組件注冊監聽器。把其加入到組件以後,如果組件激發了相應類型的事件,那麼定義在監聽器中的事件處理方法會被調用。
此模型主要由以三種對象為中心組成
事件源由它來激發產生事件
是產生或拋出事件的對象。
事件監聽器由它來處理事件
實現某個特定EventListener介面,此介面定義了一種或多種方法,事件源調用它們以響應該介面所處理的每一種特定事件類型。
事件具體的事件類型
事件類型封裝在以java.util.EventObject為根的類層次中。當事件發生時,事件記錄發生的一切事件,並從事件源傳播到監聽器對象