精彩 java 2 程式設計 c2 物件與事件控制技巧. 2 目錄 c2-1 認識事件 c2-1...
Post on 22-Dec-2015
262 views
TRANSCRIPT
![Page 1: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/1.jpg)
Java 2 < >精彩 程式設計 吳逸賢、吳目誠 編著
C2 物件與事件控制技巧
![Page 2: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/2.jpg)
2
目錄
C2-1 認識事件 C2-2 以時間事件來控制物件 C2-3 滑鼠控制技巧 C2-4 鍵盤控制技巧
![Page 3: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/3.jpg)
3
C2-1 認識事件
改寫視窗程式的架構 事件與事件傾聽者 事件類別 事件傾聽者 視窗事件
![Page 4: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/4.jpg)
4
改寫視窗程式的架構:
在開始介紹事件的觀念之前,希望能先引導讀者改變程式的架構(因為這一章之前的程式碼架構,與這一章之後的程式架構不一樣)。
![Page 5: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/5.jpg)
5
在 main() 程式中建立一個 frame 物件,然後設定frame 物件屬性的程式碼如下:
若將新撰寫的程式類別繼承 JFrame ,而在 main() 視窗中使用所建立的程式類別來建立程式物件,則這個物件便具有 JFrame 的特性,因此在程式中,就可以直接使用繼承自 JFrame 的方法和屬性,或者實作介面。
![Page 6: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/6.jpg)
6
直接使用繼承自 JFrame 的方法和屬性的程式架構如下:
![Page 7: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/7.jpg)
7
事件與事件傾聽者:
所謂事件( Event )是指軟體在執行的過程中,所可能發生的情況。
事件( Event )是物件導向程式非常重要的機制,是建立程式和使用者間溝通的橋樑。
在程式執行過程中,發生啟動程式、結束程式、按下滑鼠鍵、放開滑鼠鍵、按下鍵盤、打開視窗及關閉視窗等事件時,程式就可以根據發生的事件內容,執行特定的程式碼。
![Page 8: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/8.jpg)
8
事件的發生與處理:
Java 的事件處理是一種委託式( delegation )事件處理模式,事件的發生與處理,是由事件類別( Event Class )產生的物件( Event Object )與事件傾聽者( Event Listener )所構成,其關係如下圖所示:
![Page 9: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/9.jpg)
9
事件作業過程如下:
當我們移動滑鼠指標在按鈕(事件來源)上按一下滑鼠鍵時,按鈕會送出一個物件給 Action 事件傾聽者( ActionListener )。
ActionListener 事件傾聽者收到委託的物件後,便會啟動 actionPerformed() 方法,執行指定的工作。
![Page 10: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/10.jpg)
10
物件與處理事件的方法:
在程式中要使用事件傾聽者 ActionListener ,必須實作( implements ) ActionListener 。
按鈕物件要委託 ActionListener 處理事件,要使用 add ActionListener() 方法。
![Page 11: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/11.jpg)
11
按鈕物件委託 ActionListener 處理事件的程式碼如下:
![Page 12: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/12.jpg)
12
![Page 13: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/13.jpg)
13
程式執行結果如下:
![Page 14: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/14.jpg)
14
事件類別:
Java 的事件類別大多數繼承自 java.awt.AWTEvent 類別。
![Page 15: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/15.jpg)
15
繼承關係如下圖所示:
![Page 16: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/16.jpg)
16
事件類別名稱的功能與產生時機說明如下:
![Page 17: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/17.jpg)
17
其他同樣繼承自 EventObject 類別的事件類別:
其他同樣繼承自 EventObject 類別的事件類別,包括 CaretEvent 、 ChangeEvent 、 HyperlinkEvent 、 LineEvent 、 ListDataEvent 、ListSelectionEvent 、 MenuEvent 、 PopupMenuEvent 、 TableColumnModelEvent 、 TableModelEvent 、 TreeExpansionEvent 、 TreeModelEvent 、 TreeSelectionEvent 、 UndoableEditEvent 等等,這些事件類別都存放在 javax.swing.event 程式套件中。
![Page 18: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/18.jpg)
18
事件的特性:
根據事件的特性,可分為低階事件( low-level events ) 與語意事件( semantic events )兩種。
低階事件類別包括 ComponentEvent 、 ContainerEvent 、 FocusEvent 、 KeyEvent 、 MouseEvent 、 PaintEvent 、 WindowEvent 等。
語意事件類別包括 ActionEvent 、 AdjustmentEvent 、ItemEvent 、 TextEvent 、 HierarchyEvent 、 InputMethodEvent 、 InvocationEvent 等。
一般來說,由視窗系統所產生,或滑鼠、鍵盤等產生的事件為低階事件,此外則為語意事件。
![Page 19: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/19.jpg)
19
事件傾聽者:
EventListener (事件傾聽者)是一個介面( interface ,請參考 B2 ), EventListener是所有事件傾聽者介面的上層介面。
![Page 20: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/20.jpg)
20
EventListener 包含下列子介面 -1 :
ActionListener ‘ 接收 ActionEvent AdjustmentListener ‘ 接收 AdjustmentEvent ComponentListener ‘ 接收 ComponentEvent ContainerListener ‘ 接收 ContainerEvent FocusListener ‘ 接收 FocusEvent HierarchyListener ‘ 接收 HierarchyEvent HyperlinkListener ‘ 接收 HyperlinkEvent InputMethodListener ‘ 接收 InputMethodEvent ItemListener ‘ 接收 ItemEvent KeyListener ‘ 接收 KeyEvent
![Page 21: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/21.jpg)
21
EventListener 包含下列子介面 -2 :
ListDataListener ‘ 接收 ListDataEvent ListSelectionListener ‘ 接收 ListSelectionEvent MenuListener ‘ 接收 MenuEvent MouseListener ‘ 接收 MouseEvent MouseMotionListener ‘ 接收 MouseEvent MouseWheelListener ‘ 接收 MouseEvent PopupMenuListener ‘ 接收 PopupMenuEvent TableColumnModelListener ‘ 接收 TableColumn
ModelEvent TableModelListener ‘ 接收 TableModelEvent TextListener ‘ 接收 TextEvent
![Page 22: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/22.jpg)
22
EventListener 包含下列子介面 -3 :
TreeExpansionListener ‘ 接收 TreeExpansionEvent TreeModelListener‘ 接收 TreeModelEvent TreeSelectionListener ‘ 接收 TreeSelectionEvent UndoableEditListener ‘ 接收 UndoableEditEvent WindowFocusListener ‘ 接收 WindowEvent WindowListener ‘ 接收 WindowEvent WindowStateListener ‘ 接收 WindowEvent
![Page 23: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/23.jpg)
23
事件聽者數到事件時的執行方法:
當事件傾聽者收到事件時,會分別執行不同的方法。
例如 ActionListener 傾聽者介面會執行 actionPerformed() 方法,因此在程式中就要實作actionPerformed() 方法,而使用 KeyListener傾聽者介面,則程式中就要實作 keyPressed() 、 keyReleased() 和 keyTyped() 等方法。
![Page 24: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/24.jpg)
24
視窗事件:
使用 WindowListener (視窗事件傾聽者)來接收視窗事件,必須實作下列七個方法:windowActivated() ‘ 視窗作用中windowDeactivated() ‘ 視窗沒有作用windowOpened() ‘ 視窗已經開啟windowClosed() ‘ 視窗已經關閉windowClosing() ‘ 關閉視窗中windowIconified() ‘ 最小化視窗windowDeiconified() ‘ 取消最小化視窗
![Page 25: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/25.jpg)
25
前面章節中,有許多程式中都是利用下列程式碼來關閉視窗,並結束程式:
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
![Page 26: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/26.jpg)
26
使用 WindowListener 來接收關閉視窗的事件,進而結束視窗程式,程式碼如下:
![Page 27: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/27.jpg)
27
![Page 28: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/28.jpg)
28
![Page 29: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/29.jpg)
29
執行程式畫面顯示如下:
![Page 30: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/30.jpg)
30
透過 WindowAdapter 類別來關閉視窗,程式碼如下:
![Page 31: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/31.jpg)
31
執行程式,選擇關閉視窗鈕就可以直接關閉視窗程式,畫面顯示如下:
![Page 32: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/32.jpg)
32
C2-2 以時間事件來控制物件
利用時間事件變化來移動物件 同時控制多個不同移動速度的元件 應用三角函數製作圓形運動 畫面上彈跳的小球
![Page 33: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/33.jpg)
33
利用時間事件變化來移動物件:
時間事件可以用來控制視窗上元件的變化,例如製作出元件緩緩上升的效果,畫面顯示如下:
![Page 34: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/34.jpg)
34
時間事件:
時間事件的時間單位為千分之一秒,若設定為 500 ,則每 1/2 秒觸發一次。
![Page 35: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/35.jpg)
35
以下就是製作氣球元件緩緩上升效果的程式碼:
![Page 36: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/36.jpg)
36
![Page 37: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/37.jpg)
37
![Page 38: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/38.jpg)
38
同時控制多個不同移動速度的元件:
同時要控制多個不同移動速度的元件有兩種方法。
一種是使用一個時間物件,然後設定各元件不同的移動間隔;另一種是每一個元件分別對應一個時間物件,而分別設定不同的時間間隔。
![Page 39: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/39.jpg)
39
控制多個不同移動速度的畫面顯示如下:
![Page 40: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/40.jpg)
40
以下就是同時控制多個不同移動速度元件的程式碼:
![Page 41: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/41.jpg)
41
![Page 42: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/42.jpg)
42
應用三角函數製作圓形運動:
應用內建的三角函數,包括 sin 、 cos 、 tan 、atan…… 等等,可以應用這些函數來計算座標的位置。
例如:圓形運動、拋物線運動等軌道座標計算。
![Page 43: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/43.jpg)
43
以下就是圓形軌道運動的執行畫面:
![Page 44: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/44.jpg)
44
以下就是應用三角函數計算圓形軌道的程式碼:
![Page 45: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/45.jpg)
45
![Page 46: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/46.jpg)
46
![Page 47: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/47.jpg)
47
畫面上彈跳的小球:
應用座標變化,可以製作出圖形彈跳的效果。
![Page 48: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/48.jpg)
48
以下就是製作彈跳效果的程式碼:
![Page 49: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/49.jpg)
49
![Page 50: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/50.jpg)
50
![Page 51: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/51.jpg)
51
執行程式,圖形就會有彈跳的效果:
![Page 52: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/52.jpg)
52
C2-3 滑鼠控制技巧
滑鼠事件與事件傾聽者 顯示滑鼠座標位置 用滑鼠指標拉動佈景 簡易打地鼠程式 拖移物件與配對 座標位置記錄器
![Page 53: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/53.jpg)
53
滑鼠事件與事件傾聽者:
MouseListener 和 MouseMotionListener 是負責接收滑鼠事件的傾聽者介面。
![Page 54: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/54.jpg)
54
MouseListener 必須實作下列五個方法:
mousePressed(MouseEvent e) ‘ 按下滑鼠鍵mouseReleased(MouseEvent e) ‘ 放掉滑鼠鍵mouseEntered(MouseEvent e) ‘ 滑鼠進入按鍵區
mouseExited(MouseEvent e) ‘ 滑鼠離開按鍵區
mouseClicked(MouseEvent e) ‘ 按了一下滑鼠鍵
![Page 55: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/55.jpg)
55
MouseMotionListener 則必須實作下列兩個方法:
mouseMoved(MouseEvent e) ‘ 移動滑鼠mouseDragged(MouseEvent e) ‘拖移滑鼠
![Page 56: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/56.jpg)
56
下面就是 MouseListener 接收滑鼠事件的程式碼:
![Page 57: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/57.jpg)
57
![Page 58: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/58.jpg)
58
![Page 59: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/59.jpg)
59
完成圖:
執行程式時,當滑鼠在按鍵上發生按下、放掉、進入、移開等事件時,視窗上會顯示事件的訊息。
![Page 60: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/60.jpg)
60
下面就是 MouseMotionListener 接收滑鼠事件的程式碼:
![Page 61: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/61.jpg)
61
![Page 62: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/62.jpg)
62
執行程式,畫面顯示如下:
![Page 63: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/63.jpg)
63
利用 InputEvent 事件判斷到底是按下左鍵還是右鍵 :
![Page 64: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/64.jpg)
64
以下就是測試滑鼠按鍵的程式碼:
![Page 65: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/65.jpg)
65
![Page 66: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/66.jpg)
66
![Page 67: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/67.jpg)
67
完成圖:
當滑鼠在滑鼠按鍵區按下滑鼠左鍵,視窗上方會顯示“按了一下左鍵的訊息”;當滑鼠在滑鼠按鍵區按下滑鼠右鍵,視窗上方會顯示“按了一下右鍵的訊息”。
![Page 68: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/68.jpg)
68
滑鼠事件與事件傾聽者的注意事項:
使用 MouseListener 和 MouseMotionListener時,不論使用哪一個方法,都必須把其它沒有用到的方法輸入到程式中,否則,程式將無法執行。
![Page 69: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/69.jpg)
69
顯示滑鼠座標位置:
在應用滑鼠事件來執行程式時,經常需要滑鼠的座標位置來輔助。
![Page 70: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/70.jpg)
70
以下就是顯示滑鼠座標位置的程式碼:
![Page 71: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/71.jpg)
71
![Page 72: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/72.jpg)
72
完成圖:
在視窗中任意移動滑鼠,就會顯示滑鼠座標的位置。
![Page 73: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/73.jpg)
73
用滑鼠指標拉動佈景:
佈景和滑鼠指標的互動,也是製作動態網頁經常使用到的技巧。
![Page 74: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/74.jpg)
74
以下就是製作用滑鼠指標拉動佈景的程式碼:
![Page 75: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/75.jpg)
75
![Page 76: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/76.jpg)
76
![Page 77: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/77.jpg)
77
完成圖:
![Page 78: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/78.jpg)
78
簡易打地鼠程式:
這個例子的操作規則是畫面上會顯示小老鼠,操作者只要在小老鼠上按一下滑鼠左鍵,就可以得到 10 分。
![Page 79: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/79.jpg)
79
以下就是設計簡易打地鼠程式的程式碼:
![Page 80: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/80.jpg)
80
![Page 81: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/81.jpg)
81
![Page 82: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/82.jpg)
82
執行程式,畫面顯示如下:
![Page 83: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/83.jpg)
83
拖移物件與配對:
使用滑鼠指標來拖移( drag )是經常使用到的控制技巧,以下這個例子將說明拖移物件和檢查位置等兩個技巧。
![Page 84: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/84.jpg)
84
拖移物件和檢查位置的程式碼如下:
![Page 85: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/85.jpg)
85
![Page 86: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/86.jpg)
86
![Page 87: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/87.jpg)
87
![Page 88: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/88.jpg)
88
![Page 89: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/89.jpg)
89
完成圖:
拖移水果到正確的位置,水果就會放在該處,若放錯,則會彈回到原來的位置。
![Page 90: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/90.jpg)
90
座標位置記錄器:
設計軟體時,若需要找出畫面上的座標位置,可以設計一個簡單的程式來幫忙自動產生座標串列。
![Page 91: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/91.jpg)
91
以下就是製作座標記錄器的程式碼:
![Page 92: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/92.jpg)
92
![Page 93: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/93.jpg)
93
![Page 94: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/94.jpg)
94
完成圖:
拖移紅色圓形物件到想要記錄座標的位置,然後按一下滑鼠左鍵,就會將座標位置記錄在下方的文字方塊區內。
![Page 95: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/95.jpg)
95
C2-4 鍵盤控制技巧
鍵盤事件傾聽者與 按鍵值 使用 Enter 鍵輸入答案利用鍵盤按鍵拉動佈景 模擬鍵盤按鍵狀態
![Page 96: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/96.jpg)
96
鍵盤事件傾聽者與按鍵值:
KeyListener 是負責接收鍵盤事件的傾聽者介面, KeyListener 必須實作( implements )下列三個方法:keyPressed(KeyEvent evt) ‘ 按下按鍵keyTyped(KeyEvent evt) ‘ 按一下按鍵keyReleased(KeyEvent evt) ‘ 放掉按鍵
![Page 97: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/97.jpg)
97
英文字母與數字鍵:
![Page 98: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/98.jpg)
98
![Page 99: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/99.jpg)
99
數字板( Keypad ):
![Page 100: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/100.jpg)
100
功能鍵:
![Page 101: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/101.jpg)
101
其它按鍵:
![Page 102: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/102.jpg)
102
使用 Enter 鍵輸入答案:
使用 JTextField 物件,可以讓使用者直接輸入資料,不過無法直接按 鍵,而下面這個例子就可以在按 鍵後開始檢查答案。
![Page 103: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/103.jpg)
103
以下就是使用 鍵來輸入答案的程式碼:
![Page 104: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/104.jpg)
104
![Page 105: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/105.jpg)
105
![Page 106: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/106.jpg)
106
![Page 107: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/107.jpg)
107
![Page 108: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/108.jpg)
108
完成圖:
完成後執行程式,依顯示的加法題目,在鍵盤上輸入答案,然後按下鍵盤上的 鈕,確認答案,就會出現答對了或答錯了的回饋畫面。
![Page 109: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/109.jpg)
109
利用鍵盤按鍵拉動佈景:
前一節曾經介紹使用滑鼠指標來拉動佈景的技巧,當然,利用鍵盤按鍵也可以拉動佈景。
![Page 110: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/110.jpg)
110
以下就是利用鍵盤按鍵拉動佈景的程式碼:
![Page 111: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/111.jpg)
111
![Page 112: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/112.jpg)
112
![Page 113: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/113.jpg)
113
完成圖:
在鍵盤上按下 或 鍵,佈景就會被拉動了!
![Page 114: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/114.jpg)
114
模擬鍵盤按鍵狀態:
所謂模擬鍵盤按鍵狀態,是指在螢幕上顯示鍵盤上的按鍵為按下的狀態,或放掉的狀態,例如當同時按下鍵盤上的 A 、 B 鍵時,畫面上的 A 、 B 鍵會呈現被按下的狀態。
![Page 115: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/115.jpg)
115
以下就是製作模擬鍵盤按鍵狀態互動程式的程式碼:
![Page 116: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/116.jpg)
116
![Page 117: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/117.jpg)
117
![Page 118: 精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3](https://reader033.vdocuments.net/reader033/viewer/2022061601/56649d805503460f94a64ea0/html5/thumbnails/118.jpg)
118