⑴ 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为根的类层次中。当事件发生时,事件记录发生的一切事件,并从事件源传播到监听器对象