第十三周課程總結
第十三周課程總結
事件處理。
事件類的繼承關系。

事件處理流程。

窗口事件。
windowOpened
void windowOpened(WindowEvent e)
窗口首次變?yōu)榭梢姇r調(diào)用。
windowClosing
void windowClosing(WindowEvent e)
用戶試圖從窗口的系統(tǒng)菜單中關閉窗口時調(diào)用。
windowClosed
void windowClosed(WindowEvent e)
因對窗口調(diào)用 dispose 而將其關閉時調(diào)用。
windowIconified
void windowIconified(WindowEvent e)
窗口從正常狀態(tài)變?yōu)樽钚』癄顟B(tài)時調(diào)用。對于很多平臺而言,已最小化的窗口將顯示為窗口 iconImage 屬性中所指定的圖標。
windowDeiconified
void windowDeiconified(WindowEvent e)
窗口從最小化狀態(tài)變?yōu)檎顟B(tài)時調(diào)用。
windowActivated
void windowActivated(WindowEvent e)
將 Window 設置為活動 Window 時調(diào)用。只有框架或對話框可以成為活動 Window。本機的窗口系統(tǒng)可能使用特殊裝飾表示活動 Window 或其子窗口,如高亮顯示標題欄。活動 Window 要么是聚焦 Window,要么是作為聚焦 Window 所有者的第一個 Frame 或 Dialog。
windowDeactivated
void windowDeactivated(WindowEvent e)
當 Window 不再是活動 Window 時調(diào)用。只有框架或對話框可以成為活動 Window。本機的窗口操作系統(tǒng)可能使用特殊裝飾表示活動 Window 或其子窗口,如高亮顯示標題欄。活動 Window 要么是聚焦 Window,要么是作為聚焦 Window 所有者的第一個 Frame 或 Dialog。
監(jiān)聽適配器。
可以通過Window Adapter來實現(xiàn)監(jiān)聽。
void windowActivated(WindowEvent e)
激活窗口時調(diào)用。
void windowClosed(WindowEvent e)
當窗口已被關閉時調(diào)用。
void windowClosing(WindowEvent e)
窗口正處在關閉過程中時調(diào)用。
void windowDeactivated(WindowEvent e)
停用窗口時調(diào)用。
void windowDeiconified(WindowEvent e)
取消圖標化窗口時調(diào)用。
void windowGainedFocus(WindowEvent e)
該 Window 被設置為聚焦 Window 時調(diào)用,聚焦 Window 意味著該 Window 或其某個子組件將接收鍵盤事件。
void windowIconified(WindowEvent e)
圖標化窗口時調(diào)用。
void windowLostFocus(WindowEvent e)
該 Window 不再為聚焦 Window 時調(diào)用,不再為聚焦 Window 意味著鍵盤事件不再傳遞到該 Window 或其任意子組件。
void windowOpened(WindowEvent e)
已打開窗口時調(diào)用。
void windowStateChanged(WindowEvent e)
窗口狀態(tài)改變時調(diào)用。
鍵盤事件及其監(jiān)聽處理。
接口 KeyListener
用于接收鍵盤事件(擊鍵)的偵聽器接口。旨在處理鍵盤事件的類要么實現(xiàn)此接口(及其包含的所有方法),要么擴展抽象 KeyAdapter 類(僅重寫有用的方法)。
然后使用組件的 addKeyListener 方法將從該類所創(chuàng)建的偵聽器對象向該組件注冊。按下、釋放或鍵入鍵時生成鍵盤事件。然后調(diào)用偵聽器對象中的相關方法并將該 KeyEvent 傳遞給它。

鼠標事件及其監(jiān)聽處理。
鼠標監(jiān)聽器MouseListener
監(jiān)聽鼠標事件MouseEvent。
相應事件和處理方法
鼠標事件 處理方法
MOUSE_CLICKED MouseClicked (MouseEvent) 鼠標點擊(單或雙)
MOUSE_PRESSED MousePressed (MouseEvent) 鼠標按下
MOUSE_RELEASED MouseReleased(MouseEvent) 鼠標松開
MOUSE_ENTERED MouseEntered (MouseEvent) 鼠標進入(某組件區(qū)域)
MOUSE_EXITED MouseExited (MouseEvent) 鼠標離開(某組件區(qū)域)
鼠標事件MouseEvent常用方法
int getClickCount() 得到點擊次數(shù)1 OR 2;
int getX(), int getY() 得到鼠標的(象素)位置。
鼠標監(jiān)聽器MouseMotionListener
對于鼠標的移動和拖放,另外用鼠標運動監(jiān)聽器MouseMotionListener。
因為許多程序不需要監(jiān)聽鼠標運動,把兩者分開可簡化程序。
相應事件和處理方法
鼠標事件 處理方法
MOUSE_MOVED MouseMoved (MouseEvent) 鼠標在移動
MOUSE_DRAGGED MouseDragged(MouseEvent) 鼠標被拖動
單選按鈕和復選框。
選擇框
選擇框(JCheckBox)的選中與否開狀是一個小方框,被選中則在框中打勾。當在一個容器中有多個選擇框,同時可以有多個選擇框被選中,這樣的選擇框也稱復選框。與選擇框相關的接口是ItemListener,事件類是ItemEvent。
JCheckBox類常用的構造方法有以下3個:
JCheckBox():用空標題構造選擇框。
JCheckBox(String s):用給定的標題s構造選擇框。
JCheckBox(String s, boolean b):用給定的標題s構造選擇框,參數(shù)b設置選中與否的初始狀態(tài)。
JCheckBox類的其他常用方法如下:
getState():獲取選擇框的狀態(tài)。
setState(boolean b):設置選擇框的狀態(tài)
getLabel():獲取選擇框的標題。
setLabel(String s):設置選擇框的標題。
isSelected():獲取選擇框是否被選中的狀態(tài)。
itemStateChanged(ItemEvent e):處理選擇框事件的接口方法。
getItemSelectable():獲取可選項,獲取事件源。
addItemListener(ItemListener l):為選擇框設定監(jiān)視器。
removeItemListener(ItemListener l):移去選擇框的監(jiān)視器。
單選按鈕
單選按鈕(JRadioButton)的功能與單選框相似。使用單選按鈕的方法是將一些單選按鈕用ButtonGroup對象分組,使同一組的單選按鈕只允許有一個被選中。單選按鈕與單選框的差異是顯示的樣式不同,單選按鈕是一個圓形的按鈕,單選框是一個小方框。
JRadioButton類的常用構造方法有以下幾個:
JRadioButton():用空標題構造單選按鈕。
JRadioButton(String s):用給定的標題s構造單選按鈕。
JRadioButton(String s,boolean b):用給定的標題s構造單選按鈕,參數(shù)b設置選中與否的初始狀態(tài)。
單選按鈕使用時需要使用ButtonGroup將單選按鈕分組,單選按鈕的分組方法是先創(chuàng)建對象,然后將同組的單選按鈕添加到同一個ButtonGroup對象中。參見例6.2程序的子類panel1的聲明,組內(nèi)有3個單選按鈕。
選擇項目事件處理
用戶對選擇框或單選按鈕做出選擇后,程序應對這個選擇作出必要的響應,程序為此要處理選擇項目事件。選擇項目處理程序的基本內(nèi)容有:
監(jiān)視選擇項目對象的類要實現(xiàn)接口ItemListener,
程序要聲明和建立選擇對象,
為選擇對象注冊監(jiān)視器,
編寫處理選擇項目事件的接口方法itemStateChanged(ItemEvent e),在該方法內(nèi)用getItemSelectable()方法獲取事件源,并作相應處理。
浙公網(wǎng)安備 33010602011771號