㈠ 關於java的監聽器
1、public void addWindowListener(WindowListener l)添加指定的窗口偵聽器,以從此窗口接收窗口事件。如果 l 為 null,則不拋出任何異常,且不執行任何操作。
這個是API中的方法定義,此方法參數為介面WindowListener,任何實現該介面的類都可以作為參數。
2、public abstract class WindowAdapterimplements WindowListener, WindowStateListener, WindowFocusListener
接收窗口事件的抽象適配器類。此類中的方法為空。此類存在的目的是方便創建偵聽器對象。
擴展此類可創建 WindowEvent 偵聽器並為所需事件重寫該方法。(如果要實現
WindowListener 介面,則必須定義該介面內的所有方法。此抽象類將所有方法都定義為
null,所以只需針對關心的事件定義方法。)
使用擴展的類可以創建偵聽器對象,然後使用窗口的 addWindowListener
方法向該窗口注冊偵聽器。當通過打開、關閉、激活或停用、圖標化或取消圖標化而改變了窗口狀態時,將調用該偵聽器對象中的相關方法,並將
WindowEvent 傳遞給該方法。
3、如果我想在代碼中一次性使用某個類(抽象類或具體類)或介面,可以使用匿名類的方式,這樣不需自己定義一個My***類,然後再使用,比較方便。用法就是直接在new WindowAdapter()後面加入類定義,在其中實現或覆蓋方法就可以了。
匿名類不是返回值,而是相當於new String(「hello」)這種的擴展形式。我覺得匿名類的最多用處就是加監聽器時。
附上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中ItemListener與actionListener的區別
ActionLintsner是所有監聽器的父類,其它監聽器可以監聽的事件都可以被它捕獲
ItemListener用於捕獲帶有item的組件產生的事件,如ComboBox,CheckBox,RadioButton,ToggleButton,介面中定義的itemStateChanged(ItemEvent e)將執行需要在已選定(或已取消選定)項時發生的操作
㈢ java中為什麼要設置監聽器,有什麼用
豬哥解答:
1、private JButton jb=new JButton("按鈕");這句話聲明了一個按鈕,名字叫jb。
2、jb.addActionListener(this);這里給jb那個按鈕設置了監聽,默認為點擊觸發,當然你寫的這個監聽有點怪異~
3、點擊按鈕jb觸發監聽處理方法actionPerformed,在這里可以做你想要的操作,你代碼實現的是改變lab這個label標簽的內容。
4、至於java中為什麼要用監聽,這就像銀行裝監控一樣,監視你的一舉一動,銀行裝監控是為了捕捉每個進銀行的人的動作,預防危險的發生。
java中做監聽同樣是為了監視某個客戶端動作用的,萬一你給我搞破壞怎麼辦(監聽的作用遠不止如此),當然也像平時生活中不是所有的地方都要放監控,要不就沒法過了,java中也不是所有的地方都要放監聽,具體哪裡要放監聽,不該是在課本里學的,應該根據實際工廠、公司的需求來定。