Java開發(fā)綜合實戰(zhàn) 課件 【ch06】GUI事件處理_第1頁
Java開發(fā)綜合實戰(zhàn) 課件 【ch06】GUI事件處理_第2頁
Java開發(fā)綜合實戰(zhàn) 課件 【ch06】GUI事件處理_第3頁
Java開發(fā)綜合實戰(zhàn) 課件 【ch06】GUI事件處理_第4頁
Java開發(fā)綜合實戰(zhàn) 課件 【ch06】GUI事件處理_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第六章Java開發(fā)綜合實戰(zhàn)GUI事件處理計算機專業(yè)·任務(wù)驅(qū)動應(yīng)用型教材01認(rèn)識事件處理機制認(rèn)識事件處理機制事件處理模式12事件對象事件對象是指被封裝在GUI組件上發(fā)生的特定事件的類對象,通常是用戶進(jìn)行的一次操作,如單擊按鈕、按下按鍵等。事件源能夠產(chǎn)生事件的對象都可以被稱為事件源,通常是產(chǎn)生事件的組件,如文本框、按鈕、下拉列表等。認(rèn)識事件處理機制事件處理模式3事件監(jiān)聽器事件監(jiān)聽器負(fù)責(zé)監(jiān)聽事件源上發(fā)生的事件,以便對發(fā)生的事件進(jìn)行處理。事件源通過調(diào)用相應(yīng)的方法將某個對象注冊為自己的監(jiān)聽器。例如,對于文本框,這個方法是addActionListener(監(jiān)聽器)。認(rèn)識事件處理機制事件處理模式4事件處理器事件處理器負(fù)責(zé)接收事件對象并進(jìn)行相應(yīng)的處理,被包含在一個事件監(jiān)聽器類中。事件監(jiān)聽器實質(zhì)上就是一個實現(xiàn)特定類型監(jiān)聽器接口的類對象,為了處理事件源發(fā)生的事件,監(jiān)聽器這個對象會自動調(diào)用一個方法來處理事件。認(rèn)識事件處理機制事件處理模式上述4個概念彼此之間聯(lián)系緊密,在整個事件處理機制中起著非常重要的作用。事件處理模式如圖6-1所示。認(rèn)識事件處理機制事件處理模式綜上所述,在程序中,如果要實現(xiàn)事件的監(jiān)聽處理機制,首先要定義一個實現(xiàn)了事件監(jiān)聽器接口的類,如ActionListener類。然后通過addActionListener()方法為事件源注冊事件監(jiān)聽器對象。當(dāng)事件源發(fā)生事件并產(chǎn)生事件對象時,便會觸發(fā)事件監(jiān)聽器對象,由事件監(jiān)聽器調(diào)用相應(yīng)的方法來處理相應(yīng)的事件。認(rèn)識事件處理機制事件類當(dāng)發(fā)生一個事件時,該事件用一個事件對象表示,事件對象有對應(yīng)的事件類。不同的事件類用于描述不同類型的用戶操作。Java將事件分為兩個類別:低級事件與語義事件。絕大部分與圖形用戶界面有關(guān)的事件類位于java.awt.event包中,其中包含了各種事件類別的監(jiān)聽接口。認(rèn)識事件處理機制事件類1低級事件低級事件是指來自鍵盤、鼠標(biāo)和與窗口操作有關(guān)的事件。例如,關(guān)閉窗口、移動鼠標(biāo)獲取焦點或按下按鍵等。java.awt.event包中包含的低級事件類如表6-1所示。認(rèn)識事件處理機制事件類2語義事件語義事件是指與組件有關(guān)的事件。例如,單擊按鈕、在文本框中輸入文本、拖動滾動條、選擇列表項等。java.awt.event包中常用的語義事件類如表6-2所示。02常用事件常用事件Java中的常用事件包括窗口事件、鼠標(biāo)事件、鍵盤事件、動作事件、選項事件、焦點事件和文檔事件。每個事件類都對應(yīng)一個監(jiān)聽器接口,比如窗口事件類WindowEvent對應(yīng)WindowListener接口。一個類只要實現(xiàn)了某個監(jiān)聽器接口就是一個監(jiān)聽器類了。常用事件窗口事件(WindowEvent)大部分圖形用戶界面應(yīng)用程序需要使用Window(窗口)對象作為最外層的容器,Window對象可以發(fā)生窗口事件,如窗口的打開、關(guān)閉、激活、圖標(biāo)化(最小化)等。在應(yīng)用程序中,觸發(fā)窗口事件時,WindowEvent類將創(chuàng)建一個窗口事件對象。該對象調(diào)用getWindow()方法獲取發(fā)生窗口事件的窗口。常用事件窗口事件(WindowEvent)WindowListener接口中有7個不同的方法,如表6-3所示,當(dāng)不同的窗口事件被觸發(fā)時,窗口監(jiān)聽器調(diào)用不同的方法。常用事件窗口事件(WindowEvent)常用事件(Adopter)事件適配器在Java中,當(dāng)一個類實現(xiàn)一個接口時,必須實現(xiàn)接口中所有的方法,即使當(dāng)前操作不需要其中的某些方法也需要實現(xiàn),這在實際應(yīng)用中會導(dǎo)致代碼冗余,如上述案例所示。在這種情況下,可以使用適配器的設(shè)計模式代替接口來處理事件,在實現(xiàn)類和接口之間增加一個過渡的抽象類,子類繼承抽象類就可以根據(jù)自己的需要重寫需要的方法。常用事件(Adopter)事件適配器Java在事件處理中提供了很多Adapter(適配器)類,當(dāng)處理事件的接口多于一個方法時,Java相應(yīng)地就提供一個Adapter類,方便用戶進(jìn)行事件處理的實現(xiàn),如WindowAdapter、MouseAdapter、KeyAdapter、MouseMotionAdapter和FocusAdapter類。常用事件鼠標(biāo)事件(MouseEvent)在圖形用戶界面中,用戶會經(jīng)常使用鼠標(biāo)在組件上進(jìn)行各種操作,例如,按下、釋放、單擊、拖動等,這些操作被定義為鼠標(biāo)事件。幾乎所有的組件都可以產(chǎn)生鼠標(biāo)事件,在JDK中使用MouseEvent類表示鼠標(biāo)事件,該事件會使MouseEvent類自動創(chuàng)建一個事件對象。常用事件鼠標(biāo)事件(MouseEvent)在處理鼠標(biāo)事件時,首先需要實現(xiàn)MouseListener接口(或MouseMotionListener接口)或繼承適配器MouseAdapter類(或MouseMotionAdapter類)來定義監(jiān)聽器,然后調(diào)用addMouseListener(方法(或addMouseMotionListener()方法)將監(jiān)聽器綁定到事件源上。常用事件鼠標(biāo)事件(MouseEvent)MouseListener接口中有5個不同的方法,如表6-4所示,用于處理5種不同的鼠標(biāo)事件。常用事件鼠標(biāo)事件(MouseEvent)鼠標(biāo)的操作分為單擊、雙擊、右擊和中鍵(滾輪)單擊。MouseEvent類中定義了很多常量和方法來標(biāo)識鼠標(biāo)的操作,如表6-5所示。常用事件鼠標(biāo)事件(MouseEvent)常用事件鼠標(biāo)事件(MouseEvent)MouseMotionListener接口中有2個方法,如表6-6所示,分別用于處理拖動鼠標(biāo)和移動鼠標(biāo)事件。常用事件鍵盤事件(KeyEvent)鍵盤操作是常用的用戶與網(wǎng)頁進(jìn)行交互的方式,如按下、釋放或敲擊鍵盤按鍵等,這些操作被定義為鍵盤事件。JDK使用KeyEvent類表示鍵盤事件,處理KeyEvent事件的監(jiān)聽器對象需要實現(xiàn)KeyListener接口或者繼承KeyAdapter類。常用事件鍵盤事件(KeyEvent)KeyListener接口中有3個方法,如表6-7所示。常用事件鍵盤事件(KeyEvent)鍵盤上的按鍵眾多,KeyEvent類提供了一些方法用于標(biāo)識觸發(fā)鍵盤事件的按鍵,如表6-8所示。常用事件動作事件(ActionEvent)動作事件不代表某個具體的動作,只是表示一個動作發(fā)生了,不關(guān)心使用哪種方式觸發(fā)的事件。JDK使用ActionEvent類表示動作事件,文本框、按鈕、菜單項、密碼框和單選按鈕都是ActionEvent事件的事件源,觸發(fā)ActionEvent事件。常用事件動作事件(ActionEvent)在處理動作事件時,首先需要實現(xiàn)ActionListener接口定義監(jiān)聽器,然后調(diào)用addActionListener()方法將實現(xiàn)ActionListener接口的類的實例注冊為事件源的監(jiān)聽器。常用事件動作事件(ActionEvent)ActionListener接口中只定義了一個方法publicvoidactionPerformed(ActionEvente),在發(fā)生操作時被調(diào)用。ActionEvent類的常用方法如表6-9所示。常用事件動作事件(ActionEvent)常用事件選項事件(ltemEvent)在應(yīng)用程序中,勾選復(fù)選框或取消勾選復(fù)選框,就會觸發(fā)選項事件。JDK使用ItemEvent類表示選項事件。除了復(fù)選框,下拉列表框、菜單項等組件都可以觸發(fā)ItemEvent事件。在處理選項事件時,首先需要實現(xiàn)ItemListener接口定義監(jiān)聽器,然后調(diào)用addItemListener()方法將實現(xiàn)ItemListener接口的類的實例注冊為事件源的監(jiān)聽器。常用事件選項事件(ltemEvent)ItemListener接口中只有一個方法publicvoiditemStateChanged(ItemEvente),在選擇項發(fā)生改變時被調(diào)用。ItemEvent類的常用方法如表6-10所示。常用事件選項事件(ltemEvent)常用事件焦點事件(FocusEvent)FocusEvent類表示焦點事件,每個GUI組件都能作為焦點事件的事件源,也就是每個組件在獲得焦點或者失去焦點時都會產(chǎn)生焦點事件。例如,將焦點移出文本框,或者將焦點返回文本框等。常用事件焦點事件(FocusEvent)在處理焦點事件時,首先需要實現(xiàn)FocusListener接口定義監(jiān)聽器,然后調(diào)用addFocusListener()方法將實現(xiàn)FocusListener接口的類的實例注冊為事件源的監(jiān)聽器。FocusListener接口中有2個方法,用于處理焦點改變的事件,如表6-11所示。常用事件焦點事件(FocusEvent)常用事件焦點事件(FocusEvent)焦點事件有持久性和暫時性兩個級別。當(dāng)焦點直接從一個組件移到另一個組件的,會發(fā)生持久性焦點變更事件;如果失去焦點則是暫時性的,例如,在窗口被拖放時會失去焦點,而拖放結(jié)束后就會自動恢復(fù)焦點,這就是暫時性焦點變更事件。常用事件文檔事件(DocumentEvent)DocumentEvent類用于處理文檔事件。能夠產(chǎn)生文檔事件的事件源有文本框(JTextField)、密碼框(JPasswordField)、文本域(JTextArea),但這些組件不能直接觸發(fā)文檔事件。用戶在進(jìn)行文本編輯操作時,文本內(nèi)容發(fā)生變化,使得這些組件所維護(hù)的文檔模型中的數(shù)據(jù)發(fā)生變化,從而觸發(fā)文檔事件。常用事件文檔事件(DocumentEvent)在處理文

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論