事件響應---面向對象之類與對象-圖形界面程序設計_第1頁
事件響應---面向對象之類與對象-圖形界面程序設計_第2頁
事件響應---面向對象之類與對象-圖形界面程序設計_第3頁
事件響應---面向對象之類與對象-圖形界面程序設計_第4頁
事件響應---面向對象之類與對象-圖形界面程序設計_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、面向對象之圖形界面設計面向對象之圖形界面設計濟南大學 信息學院2回顧窗口程序設計的步驟。窗口程序設計的步驟。說一說常見的頂層容器,中間容器,功能組件的類名說一說常見的頂層容器,中間容器,功能組件的類名說一說常見的布局管理器說一說常見的布局管理器濟南大學 信息學院3重點:重點:事件響應實現(xiàn)的機制事件響應實現(xiàn)的機制單擊事件的響應單擊事件的響應鼠標事件的響應鼠標事件的響應難點:難點:事件類事件類事件監(jiān)聽器事件監(jiān)聽器關鍵實踐:關鍵實踐:實現(xiàn)一個簡單運算器實現(xiàn)一個簡單運算器實現(xiàn)一個實現(xiàn)一個”你來我就跑你來我就跑”的小程序的小程序實驗一個實驗一個”放煙火放煙火”的小程序的小程序本章目標濟南大學 信息學院有

2、事件事件發(fā)生了一首歌響起一條小狗走過來能夠捕捉聲音事件的器官(耳朵),并對事件響應能夠捕捉光線事件的器官(眼睛),并對事件響應一個人對應的對應的事件監(jiān)聽器事件監(jiān)聽器接收事件的對象接收事件的對象對事件的響應對事件的響應聽到歌晃起腦袋看到小狗來趕緊跑裝上耳朵裝上眼睛濟南大學 信息學院有事件事件發(fā)生了單擊操作(ActionEvent)鼠標進入(MouseEntered)能夠捕捉單擊事件的類(ActionListenter),并對事件響應能夠捕捉鼠標事件的類(MouseMotionListener),并對事件響應一個按鈕對應的對應的事件監(jiān)聽器事件監(jiān)聽器接收事件的對象接收事件的對象對事件的響應對事件的響

3、應Do somethingDo something裝上ActionListenter對象裝上MouseMotionListener對象濟南大學 信息學院事件既是基礎,又是聯(lián)系各個部分的橋梁。首先,有不同類型的事件可事件既是基礎,又是聯(lián)系各個部分的橋梁。首先,有不同類型的事件可以被組件接收到,不同類型的組件會能夠接收事件類型不同。不同類型以被組件接收到,不同類型的組件會能夠接收事件類型不同。不同類型的事件由不同的的事件由不同的Java類來表示,類來表示,基類是基類是java.util.EventObject, 所有的事所有的事件都是從它繼承而來的件都是從它繼承而來的 。事 件 通 常 包 括 用

4、 戶 事 件 和 系 統(tǒng) 事 件事 件 通 常 包 括 用 戶 事 件 和 系 統(tǒng) 事 件 , 其 處 理 機 制 會 涉 及 到, 其 處 理 機 制 會 涉 及 到java.awt.event和和javax.swing.event兩個包,包括了如兩個包,包括了如ActionEvent、ItemEvent、MouseEvent和和KeyEvent等,第三方內容也可加入其中。等,第三方內容也可加入其中。每種事件類都有一個對應的監(jiān)聽接口,監(jiān)聽接口的功能是能夠監(jiān)聽到該每種事件類都有一個對應的監(jiān)聽接口,監(jiān)聽接口的功能是能夠監(jiān)聽到該類事件的發(fā)生,并且能夠對監(jiān)聽到的事件做出響應(接口中聲明了一個類事件的

5、發(fā)生,并且能夠對監(jiān)聽到的事件做出響應(接口中聲明了一個或多個抽象的事件處理方法,凡是需要接收并處理事件類對象的類,都或多個抽象的事件處理方法,凡是需要接收并處理事件類對象的類,都需要實現(xiàn)相應的接口,在這些方法體中定義響應的操作。)需要實現(xiàn)相應的接口,在這些方法體中定義響應的操作。)濟南大學 信息學院 java.util.EventObject java.awt.AWTEvent ActionEvent AdjustmentEvent ComponentEvent ItemEvent TextEvent ContainerEvent FocusEvent InputEvent PointEven

6、t WindowEvent KeyEvent MouseEvent 濟南大學 信息學院事件對象類型事件源對象類型事件監(jiān)聽器接口注冊和刪除事件監(jiān)聽器的方法ActionEventButton、List、MenuItem、TextFieldActionListeneraddActionListenerremoveActioListenerAdjustmentEventScrollbarAdjustmentlisteneraddAdjustmentListenerremoveAdjustmentListenerItemEventChoice、List、CheckBox、CheckBoxMenuItem

7、ItemListeneraddItemListenerremoveItemListenerTextEventTestField、TextAreaTextListeneraddTextListenerremoveTextListenerComponentEventComponentComponentListeneraddComponentListenerremoveComponentListenerContainerEventContainerContainerListeneraddContainerListenerremoveContainerListenerFocusEventCompone

8、ntFocusListeneraddFocusListenerremoveFocusListenerKeyEventComponentKeyListeneraddKeyListenerremoveKeyListenerMouseEventComponentMouseListener addMouseListenerremoveMouseListener MouseEventComponentMouseMotionListeneraddMouseMotionListenerremoveMouseMotionListenWindowEventWindowWindowListeneraddWindo

9、wListenerremoveWindowListentener提示:提示:事件是事件是xxxxxEvent對應的監(jiān)聽器接口就是對應的監(jiān)聽器接口就是xxxxxListener。濟南大學 信息學院事件監(jiān)聽器接口事件監(jiān)聽器接口中定義的方法事件監(jiān)聽器接口事件監(jiān)聽器中接口定義的方法ActionListenerActionPerformed(ActionEvent e)FocusListenerfocusGained(FocusEvnent e)focusLost(FocusEvnent e)AdjustmentlistenerAdjustmentValueChanged(AdjustmentEvent

10、 e)KeyListenerkeyPressed(keyEvent e)keyReleased(keyEvent e)ItemListenerItemStateChanged(ItemEvent e)MouseListenermouseClicked(MouseEvent e)mouseReleased(MouseEvent e)mouseEntered(MouseEvent e)mouseExited(MouseEvent e)mousePressed(MouseEvent e)TextListenerTextValueChanbed( TectEvent e)MouseMotionList

11、enermouseDragged(MouseEvent e)mouseMoved(MouseEvent e)ComponentListenerComponentHidder(ComponentEvent e)ComponentShown(ComponentEvent e)ComponentMoved(ComponentEvent e)ComponentResized(ComponentEvent e)WindowListenerwindowActivated(WindowEvent e)windowDeactivated(WindowEvent e)windowIconified(Window

12、Event e)windowDeiconified(WindowEvent e)windowClosing(WindowEvent e)windowClosed(WindowEvent e)windowOpened(WindowEvent e)ContainerListenercomponentAdded(ContainerEvent e)componentRemoved(ContainerEvent e)提示:提示:監(jiān)聽器對特定事件的響應操作應該定義在某特定的方法中。監(jiān)聽器對特定事件的響應操作應該定義在某特定的方法中。濟南大學 信息學院第一步:確定要響應的第一步:確定要響應的事件事件(Act

13、ionEvent,MouseEvent等中的哪一種等中的哪一種)第二步:創(chuàng)建第二步:創(chuàng)建事件監(jiān)聽器類事件監(jiān)聽器類(implements擬響應事件對應的監(jiān)聽接口,擬響應事件對應的監(jiān)聽接口,將要響應的操作定義在監(jiān)聽器接口中定義的對應方法體內。)將要響應的操作定義在監(jiān)聽器接口中定義的對應方法體內。)第三步:根據(jù)第二步創(chuàng)建一個具體的監(jiān)聽器對象,然后為接收事件的組第三步:根據(jù)第二步創(chuàng)建一個具體的監(jiān)聽器對象,然后為接收事件的組件添加上該件添加上該事件監(jiān)聽器對象事件監(jiān)聽器對象(調用組件的調用組件的addXXXListener方法來完成方法來完成)。濟南大學 信息學院為窗口中的按鈕添加單擊事件響應,當單擊該按

14、鈕的時候,在控制臺輸為窗口中的按鈕添加單擊事件響應,當單擊該按鈕的時候,在控制臺輸出出“您單擊了按鈕組件!您單擊了按鈕組件!”的信息。的信息。分析: (界面實現(xiàn)過程略)1、事件是ActionEvent。2、對應的監(jiān)聽器接口是 ActionListener,響應的操作 是輸出一行信息。3、監(jiān)聽器安裝在按鈕組件上。濟南大學 信息學院public class ActionDemo JFrame jf; JButton jb; ActionDemo() jf = new JFrame(ActionDemo); jf.setSize(320,200); jf.setLayout(new BorderLa

15、yout(); jf.setVisible(true); jb = new JButton(按鈕按鈕); jf.add(jb,North); MyListener l = new MyListener(); jb.addActionListener(l); public static void main(String args) new ActionDemo(); class MyListener implements ActionListener public void actionPerformed(ActionEvent e) System.out.println(您單擊了按鈕組件!);

16、 第一步:創(chuàng)建監(jiān)聽器類(其關鍵是第一步:創(chuàng)建監(jiān)聽器類(其關鍵是implements implements ActionListenerActionListener接口)。接口)。第二步:在第二步:在actionPerformedactionPerformed方法中創(chuàng)建響方法中創(chuàng)建響應事件操作(注意:不同事件的響應操應事件操作(注意:不同事件的響應操作應該寫在其對應的方法體中)。作應該寫在其對應的方法體中)。第三步:創(chuàng)建一個監(jiān)聽器對象。第三步:創(chuàng)建一個監(jiān)聽器對象。第四步:為組件第四步:為組件jb jb添加上該監(jiān)聽器對象。添加上該監(jiān)聽器對象。思考一下:思考一下:能否讓能否讓ActionDemoAc

17、tionDemo類自己類自己implements implements ActionListenerActionListener?能否讓多個按?能否讓多個按鈕使用同一個監(jiān)聽器對象?鈕使用同一個監(jiān)聽器對象?濟南大學 信息學院為窗口中的按鈕添加單擊事件響應,當單擊該按鈕的時候,在控制臺輸為窗口中的按鈕添加單擊事件響應,當單擊該按鈕的時候,在控制臺輸出出“您單擊了按鈕組件!您單擊了按鈕組件!”的信息。的信息。當鼠標進入主窗口的是時候,在控當鼠標進入主窗口的是時候,在控制臺輸出制臺輸出“鼠標已經進入主窗口鼠標已經進入主窗口”,并且顯示鼠標當時的坐標,并且顯示鼠標當時的坐標,分析: (界面實現(xiàn)過程略)1

18、、事件是MouseEvent。2、對應的監(jiān)聽器接口是 MouseListener,響應的操作 是輸出一行信息。3、監(jiān)聽器安裝在JFrame組件上。濟南大學 信息學院public class ActionDemo JFrame jf; JButton jb; ActionDemo() jf = new JFrame(ActionDemo); jf.setSize(320,200); jf.setLayout(new BorderLayout(); jf.setVisible(true); jb = new JButton(按鈕按鈕); jf.add(jb,North); MyListener2 l2 = new MyListener2(); jf.addActionListener(l2); public static void main(String args) new ActionDemo(); class MyListener2 implements MouseListener public void mouseEntered(MouseEvent e) System.out.println(“); 第一步:創(chuàng)建監(jiān)聽器類(其關鍵是第一步:創(chuàng)建監(jiān)聽器類(其關鍵是implements implements MouseListenerMouse

溫馨提示

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

評論

0/150

提交評論