事件響應(yīng)---面向?qū)ο笾惻c對(duì)象-圖形界面程序設(shè)計(jì)_第1頁(yè)
事件響應(yīng)---面向?qū)ο笾惻c對(duì)象-圖形界面程序設(shè)計(jì)_第2頁(yè)
事件響應(yīng)---面向?qū)ο笾惻c對(duì)象-圖形界面程序設(shè)計(jì)_第3頁(yè)
事件響應(yīng)---面向?qū)ο笾惻c對(duì)象-圖形界面程序設(shè)計(jì)_第4頁(yè)
事件響應(yīng)---面向?qū)ο笾惻c對(duì)象-圖形界面程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、面向?qū)ο笾畧D形界面設(shè)計(jì)面向?qū)ο笾畧D形界面設(shè)計(jì)濟(jì)南大學(xué) 信息學(xué)院2回顧窗口程序設(shè)計(jì)的步驟。窗口程序設(shè)計(jì)的步驟。說(shuō)一說(shuō)常見的頂層容器,中間容器,功能組件的類名說(shuō)一說(shuō)常見的頂層容器,中間容器,功能組件的類名說(shuō)一說(shuō)常見的布局管理器說(shuō)一說(shuō)常見的布局管理器濟(jì)南大學(xué) 信息學(xué)院3重點(diǎn):重點(diǎn):事件響應(yīng)實(shí)現(xiàn)的機(jī)制事件響應(yīng)實(shí)現(xiàn)的機(jī)制單擊事件的響應(yīng)單擊事件的響應(yīng)鼠標(biāo)事件的響應(yīng)鼠標(biāo)事件的響應(yīng)難點(diǎn):難點(diǎn):事件類事件類事件監(jiān)聽器事件監(jiān)聽器關(guān)鍵實(shí)踐:關(guān)鍵實(shí)踐:實(shí)現(xiàn)一個(gè)簡(jiǎn)單運(yùn)算器實(shí)現(xiàn)一個(gè)簡(jiǎn)單運(yùn)算器實(shí)現(xiàn)一個(gè)實(shí)現(xiàn)一個(gè)”你來(lái)我就跑你來(lái)我就跑”的小程序的小程序?qū)嶒?yàn)一個(gè)實(shí)驗(yàn)一個(gè)”放煙火放煙火”的小程序的小程序本章目標(biāo)濟(jì)南大學(xué) 信息學(xué)院有

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

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

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

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

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

7、ItemListeneraddItemListenerremoveItemListenerTextEventTestField、TextAreaTextListeneraddTextListenerremoveTextListenerComponentEventComponentComponentListeneraddComponentListenerremoveComponentListenerContainerEventContainerContainerListeneraddContainerListenerremoveContainerListenerFocusEventCompone

8、ntFocusListeneraddFocusListenerremoveFocusListenerKeyEventComponentKeyListeneraddKeyListenerremoveKeyListenerMouseEventComponentMouseListener addMouseListenerremoveMouseListener MouseEventComponentMouseMotionListeneraddMouseMotionListenerremoveMouseMotionListenWindowEventWindowWindowListeneraddWindo

9、wListenerremoveWindowListentener提示:提示:事件是事件是xxxxxEvent對(duì)應(yīng)的監(jiān)聽器接口就是對(duì)應(yīng)的監(jiān)聽器接口就是xxxxxListener。濟(jì)南大學(xué) 信息學(xué)院事件監(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)聽器對(duì)特定事件的響應(yīng)操作應(yīng)該定義在某特定的方法中。監(jiān)聽器對(duì)特定事件的響應(yīng)操作應(yīng)該定義在某特定的方法中。濟(jì)南大學(xué) 信息學(xué)院第一步:確定要響應(yīng)的第一步:確定要響應(yīng)的事件事件(Act

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

14、鈕的時(shí)候,在控制臺(tái)輸為窗口中的按鈕添加單擊事件響應(yīng),當(dāng)單擊該按鈕的時(shí)候,在控制臺(tái)輸出出“您單擊了按鈕組件!您單擊了按鈕組件!”的信息。的信息。分析: (界面實(shí)現(xiàn)過程略)1、事件是ActionEvent。2、對(duì)應(yīng)的監(jiān)聽器接口是 ActionListener,響應(yīng)的操作 是輸出一行信息。3、監(jiān)聽器安裝在按鈕組件上。濟(jì)南大學(xué) 信息學(xué)院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)聽器類(其關(guān)鍵是第一步:創(chuàng)建監(jiān)聽器類(其關(guān)鍵是implements implements ActionListenerActionListener接口)。接口)。第二步:在第二步:在actionPerformedactionPerformed方法中創(chuàng)建響方法中創(chuàng)建響應(yīng)事件操作(注意:不同事件的響應(yīng)操應(yīng)事件操作(注意:不同事件的響應(yīng)操作應(yīng)該寫在其對(duì)應(yīng)的方法體中)。作應(yīng)該寫在其對(duì)應(yīng)的方法體中)。第三步:創(chuàng)建一個(gè)監(jiān)聽器對(duì)象。第三步:創(chuàng)建一個(gè)監(jiān)聽器對(duì)象。第四步:為組件第四步:為組件jb jb添加上該監(jiān)聽器對(duì)象。添加上該監(jiān)聽器對(duì)象。思考一下:思考一下:能否讓能否讓ActionDemoAc

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

18、、事件是MouseEvent。2、對(duì)應(yīng)的監(jiān)聽器接口是 MouseListener,響應(yīng)的操作 是輸出一行信息。3、監(jiān)聽器安裝在JFrame組件上。濟(jì)南大學(xué) 信息學(xué)院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)聽器類(其關(guān)鍵是第一步:創(chuàng)建監(jiān)聽器類(其關(guān)鍵是implements implements MouseListenerMouse

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論