鼠標與鍵盤事件的處理課件_第1頁
鼠標與鍵盤事件的處理課件_第2頁
鼠標與鍵盤事件的處理課件_第3頁
鼠標與鍵盤事件的處理課件_第4頁
鼠標與鍵盤事件的處理課件_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第十章 鼠標與鍵盤事件的處理 教學目的與要求教學目的與要求 鼠標與鍵盤是用戶與計算機進行會話的主要手段,計算機如何響應(yīng)使用者的操作就是本章所要介紹的,鼠標與鍵盤事件的處理是每個程序都要用到的操作,這些內(nèi)容對進一步編寫復(fù)雜程序是至關(guān)重要的,因此要求學生要熟練掌握與運用。通過本章的學習,使學生能熟練地掌握鼠標的MouseEvent類及鼠標各種操作(狀態(tài))的處理方法;MouseListener接口和MouseMotionListener接口及其事件處理過程;鼠標左鍵與右鍵的區(qū)別;控制鼠標的指針形狀。鍵盤事件KeyEvent類及鍵盤操作的三個方法;KeyListener接口及其事件處理過程;學生應(yīng)記住

2、常用的鍵碼。能熟練地對鼠標和鍵盤的有關(guān)操作進行應(yīng)用編程。 教學重點與難點教學重點與難點 鼠標的MouseEvent類及鼠標各種操作(狀態(tài))的處理方法、MouseListener接口和MouseMotionListener接口及其事件處理過程、鼠標的各種狀態(tài)下的形狀的控制、鍵盤事件KeyEvent類及鍵盤操作的三個方法、KeyListener接口及其事件處理過程是本章的重點。對鼠標和鍵盤的有關(guān)操作進行應(yīng)用編程是本章的難點。 教學方法與手段教學方法與手段 先通過一個用鼠標畫圖的程序講授鼠標的事件處理過程,進而再講授復(fù)雜鼠標事件的處理程序。通過堆積木的程序講授鍵盤事件的處理過程,進而講授復(fù)雜鍵盤事件

3、的處理程序。 利用多媒體投影進行直觀演示。 理論講授與上機實驗相結(jié)合。第一節(jié) MousListener接口及事件處理 一、一、MouseListener接口及其方法接口及其方法 任何組件上都可以發(fā)生鼠標事件,如:鼠標進入組件、退出組件、在組件上方單擊鼠標、拖動鼠標等都發(fā)生鼠標事件,也就是說,組件可以成為發(fā)生鼠標事件的事件源。 使用MouseListener接口可以處理5種操作發(fā)生的鼠標事件: (1)在事件源上按下鼠標鍵。 (2)在事件源上釋放鼠標鍵。 (3)在事件源上單擊鼠標鍵。 (4)鼠標進入事件源。 (5)鼠標退出事件源。鼠標事件的類型是MouseEvent,即當發(fā)生鼠標事件時,Mouse

4、Event類自動創(chuàng)建一個事件對象。 MouseEvent類中有下列幾個重要的方法: (1)getX() 獲取鼠標在事件源坐標系中的x坐標。 (2)getY() 獲取鼠標在事件源坐標系中的y坐標。 (3)getModifiers() 獲取鼠標的左鍵或右鍵。鼠標的左鍵和右鍵分別使用InputEvent類中的常量BUTTON1_MASK和BUTTON3_MASK來表示。 (4)getClickCount() 獲取鼠標被單擊的次數(shù)。 (5)getSource() 獲取發(fā)生鼠標事件的事件源。 事件源獲得監(jiān)視器的方法是 addMouseListener(監(jiān)視器)。 MouseListener接口中有如下方

5、法: (1)mousePressed(MouseEvent) 負責處理鼠標按下事件。即,當你在事件源按下鼠標時,監(jiān)視器發(fā)現(xiàn)這個事件后將自動調(diào)用接口中的這個方法對事件作出處理。 (2)mouseReleased(MouseEvent) 負責處理鼠標釋放事件。即,當你在事件源釋放鼠標時,監(jiān)視器發(fā)現(xiàn)這個事件后將自動調(diào)用接口中的這個方法對事件作出處理。 (3)mouseEntered(MouseEvent) 負責處理鼠標進入容器事件。即,當鼠標進入時,監(jiān)視器發(fā)現(xiàn)這個事件后將自動調(diào)用接口中的這個方法對事件作出處理。 (4)mouseExited(MouseEvent) 負責處理鼠標離開事件。即,當鼠標離

6、開容器時,監(jiān)視器發(fā)現(xiàn)這個事件后將自動調(diào)用接口中的這個方法對事件作出處理。 (5)mouseClicked(MouseEvent) 負責處理單擊鼠標事件。即,當鼠標被單擊時,監(jiān)視器發(fā)現(xiàn)這個事件后將自動調(diào)用接口中的這個方法對事件作出處理。 二、例題選講二、例題選講 現(xiàn)在我們給出一個小程序的例子,在這個小程序中有一個文本框,它負責記錄鼠標事件。當鼠標進入小程序時,文本區(qū)顯示“鼠標進來了”;當鼠標離開時,文本區(qū)顯示“鼠標走開了”;當鼠標被按下時,文本區(qū)顯示“鼠標按下了”,并顯示鼠標的坐標。例1、MouseListener接口事件的處理演示18_01applet.java 通過本例應(yīng)掌握的知識點是:Mo

7、usListener接口事件的處理全過程。如何判斷鼠標的動作、如何判斷鼠標單擊和雙擊、如何獲得鼠標當前的坐標等。 要注意該接口有5個方法,不論你是否使用某一個方法都必須實現(xiàn)這5個方法。 在下面的例子中,當在畫布上按下鼠標左鍵時,在鼠標位置處繪制一個園;當按下鼠標右鍵時,在鼠標位置處繪制一個矩形;當鼠標退出畫布時,清除繪制的全部圖形。例2、利用MouseListener接口事件作圖演示18_02application.java 通過本例應(yīng)掌握的知識點是:如何利用MousListener接口事件的處理來作圖全過程。要掌握如何記錄左右鍵、如何記錄鼠標的位置等技巧。 在下面的例子中,分別監(jiān)視并處理按鈕

8、、文本框和容器上的鼠標事件。注意,每個事件源的坐標系是該事件源的左上角。例3、對多個事件源進行處理演示18_03applet.java 通過本例應(yīng)掌握的知識點是:對多個事件源上發(fā)生的鼠標事件進行處理及事件源內(nèi)的相對坐標。第二節(jié)第二節(jié) MouseMotionListener接口及事件處理接口及事件處理 一、一、 MouseMotionListener接口及其方法接口及其方法 MouseMotionListener接口可以處理以下兩種操作發(fā)生的鼠標事件: (1)在事件源上拖動鼠標。 (2)在事件源上移動鼠標。 鼠標事件的類型是MouseEvent,即當發(fā)生鼠標事件時,MouseEvent類自動創(chuàng)建

9、一個事件對象。 事件源獲得監(jiān)視器的方法是 addMouseMotionListener(監(jiān)視器)。 針對上面的兩種事件,MouseMotionListener接口中有如下方法: (1)mouseDragged(MouseEvent) 負責處理鼠標拖動事件。即,當你在事件源拖動鼠標時,監(jiān)視器發(fā)現(xiàn)這個事件后將自動調(diào)用接口中的這個方法對事件作出處理。 (2)mouseMoved(MouseEvent) 負責處理鼠標移動事件。即,當你在事件源移動鼠標時,監(jiān)視器發(fā)現(xiàn)這個事件后將自動調(diào)用接口中的這個方法對事件作出處理。 二、例題選講二、例題選講 下例是一個非常簡單的用鼠標作畫的小程序。其原理很簡單,只要我

10、們能用鼠標畫點,那么就可以用鼠標自由作畫了。我們已經(jīng)會用 drawLine(int x1,int y1,int x2,int y2)畫從點(x1,y1)到點(x2,y2)的直線,那么當直線的起點和終點相同時,就畫出了一個點。例1、用MouseMotionListener接口事件畫圖演示18_04applet.java 通過本例應(yīng)掌握的知識點是:MousMotionListener接口事件的處理全過程(鼠標的移動和鼠標的拖動)。 本例中還應(yīng)注意的另一個技巧是,拖動鼠標時(按著鼠標左鍵),我們就獲得了鼠標拖動時的坐標,同時調(diào)用repaint()方法畫下這個坐標點。我們已經(jīng)知道,在程序中調(diào)用repa

11、int()方法時,程序首先清除paint()方法以前所畫的內(nèi)容,然后再調(diào)用paint()方法。但有時我們不想讓程序清除paint()方法以前所畫的所有內(nèi)容。實際上當我們調(diào)用repaint()方法時,程序自動地調(diào)用update(Graphics g)方法(從父類Component繼承下來的)清除paint()方法以前所畫的內(nèi)容,然后再調(diào)用paint()方法。因此我們可以在我們的小程序中重寫這個update(Graphics g)方法(即隱藏父類的方法),根據(jù)需要來清除哪些部分或保留哪些部分。在這個例子中,我們在update(Graphics g)方法體內(nèi)沒有清除以前所畫的內(nèi)容(如果準備清除可使用

12、clearRect方法)而是繼續(xù)調(diào)用paint()方法。 上面的例子畫圖形的線條細,只有一個像素點粗。其實可以通過畫實心圓或?qū)嵭木匦蝸砀淖兙€條的粗細。下面是一個略微復(fù)雜的例子。在這個例子中我們可以控制線條的粗細(由變量con控制)和顏色(由按鈕控制),而且我們還可以使用橡皮擦掉所畫的圖形。另外還可以使用前面介紹的方法控制鼠標的形狀。例2、顏色、線條粗細、擦除效果設(shè)計演示18_05applet.java 通過本例應(yīng)掌握的知識點是:畫線的粗細、顏色的控制;隨鼠標拖動的擦除和所畫圖形的全面清除。還應(yīng)注意本例中使用的“橡皮擦通知”和“清除通知”的技巧。第三節(jié) KeyListener接口及事件處理 一、

13、一、KeyListener接口及其方法接口及其方法 當按下、釋放或敲擊鍵盤上一個鍵時就發(fā)生了鍵盤事件,在Java l.2事件模式中,必須要有發(fā)生事件的事件源。當一個組件處于激活狀態(tài)時,敲擊鍵盤上一個鍵就導(dǎo)致這個組件上發(fā)生了鍵盤事件。 事件源使用addKeyListener方法獲得監(jiān)視器。 監(jiān)視器是一個對象,創(chuàng)建該對象的類必須實現(xiàn)接口KeyListener。接口KeyListener中有3個方法: public void keyPressed(KeyEvent e) public void keyTyped(KeyEvent e) public void KeyReleased(KeyEvent e) 當你按下鍵盤上某個鍵時,監(jiān)視器就會發(fā)現(xiàn),然后方法keyPressed方法會自動執(zhí)行,并且KeyEvent類自動創(chuàng)建一個對象傳遞給方法keyPressed中的參數(shù)e。方法keyTyped是Pressedkey和keyReleased方法的組合,當鍵被按下又釋放時,keyTyped方法被調(diào)用。 用KeyEvent類的public int getKeyCode()方法,可以判斷哪個鍵被按下、敲擊或釋放,getKeyCode方法返

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論