精彩 Java 2 程式設計 C2 物件與事件控制技巧. 2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3 滑鼠控制技巧 C2-3 滑鼠控制技巧 C2-4 鍵盤控制技巧 C2-4 鍵盤控制技巧.

Slides:



Advertisements
Similar presentations
FCU, Department of ECE, IC Design Research Lab. TEL: # 4945 Pre-SIm , Post-Sim.
Advertisements

6-1 指標簡介 6-2 指標與陣列 6-3 動態配置記憶體 6-4 本章綜合練習
布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
第 10 章 Java 的執行緒 10-1 執行緒的基礎 10-2 Java 執行緒的使用方法 10-3 Java 執行緒的同步 10-4 管道串流的執行緒.
: A-Sequence 星級 : ★★☆☆☆ 題組: Online-judge.uva.es PROBLEM SET Volume CIX 題號: Problem D : A-Sequence 解題者:薛祖淵 解題日期: 2006 年 2 月 21 日 題意:一開始先輸入一個.
3Com Switch 4500 切VLAN教學.
1 第一章 Word 的基本觀念 內容概要: Word 的特色 啟動與離開 Word 的方法 滑鼠游標與外型的介紹 基本操作 Word 視窗法則 使用 Word 遭遇問題時, 應如何利用軟體特 性而獲得輔助解說.
1 Web of Science 利用指引 單元二 瀏覽與處理查詢結果. 2 瀏覽檢索結果 查出的結果,預設以時間排列, 使用者可改變結果的排列方式: 還可以依被引用次數、相關度、 第一作者、刊名、出版年等排序 回到前先查的結果畫面 點選想看資料的完整書目 本館訂購範圍的期刊 全文,便可直接連結.
五小專案 黃詩晴 章乃云. 目錄 計算機 智慧盤 拼圖 記憶大挑戰 數學題庫 心得 參考文獻.
Review of Chapter 3 - 已學過的 rules( 回顧 )- 朝陽科技大學 資訊管理系 李麗華 教授.
: OPENING DOORS ? 題組: Problem Set Archive with Online Judge 題號: 10606: OPENING DOORS 解題者:侯沛彣 解題日期: 2006 年 6 月 11 日 題意: - 某間學校有 N 個學生,每個學生都有自己的衣物櫃.
STAT0_sampling Random Sampling  母體: Finite population & Infinity population  由一大小為 N 的有限母體中抽出一樣本數為 n 的樣 本,若每一樣本被抽出的機率是一樣的,這樣本稱 為隨機樣本 (random sample)
1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.
第 18 章 名稱空間與例外處理 18-1 名稱空間 18-1 名稱空間 18-2 例外處理 18-2 例外處理.
Intelligent Systems Mu-Chun Su Department of Computer Science & Information Engineering National Central University.
JAVA 程式設計與資料結構 第十章 GUI Introdution III. File Chooser  File Chooser 是一個選擇檔案的圖形介面, 無論我們是要存檔還是要開啟檔案,使 用這個物件都會讓我們覺得容易且舒適。
南投縣社區大學 Excel 實務應用入門 講師 : 林泉成
國立中山大學財產管理系統 線上報廢、盤點系統 總務處保管組 策劃 計算機與網路中心 分析設計 2008/03.
具備人臉追蹤與辨識功能的一個 智慧型數位監視系統 系統架構 在巡邏模式中 ,攝影機會左右來回巡視,並 利用動態膚色偵測得知是否有移動膚色物體, 若有移動的膚色物體則進入到追蹤模式,反之 則繼續巡視。
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
第 9 章 視窗應用程式的事件處理 9-1 事件的基礎 9-1 事件的基礎 9-2 表單事件 9-2 表單事件 9-3 滑鼠事件 9-3 滑鼠事件 9-4 鍵盤事件 9-4 鍵盤事件 9-5 表單的鍵盤事件 9-5 表單的鍵盤事件 9-6 控制項的事件 9-6 控制項的事件.
Chapter 13 塑模靜態觀點:物件圖 Static View : Object Diagram.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
第 5 章 深入 Response 物件 製作. 網頁的轉向與強制輸出 - 讓網頁轉彎的 Redirect 敘述 運用 Response 物件的 Redirect 方法,將瀏覽器顯 示的網頁,導向至其他網頁,語法如下: Response.Redirect 網頁路徑與名稱 此網頁路徑與名稱  若是導向到同一台.
24-6 設定開始與結束場景中的 程式 最後我們要替這個遊戲收個尾, 幫它把開始 的等待畫面跟結束畫面處理一下。
最新計算機概論 第 5 章 系統程式. 5-1 系統程式的類型 作業系統 (OS) : 介於電腦硬體與 應用軟體之間的 程式,除了提供 執行應用軟體的 環境,還負責分 配系統資源。
3-3 使用幾何繪圖工具 Flash 的幾何繪圖工具包括線段工具 (Line Tool) 、橢圓形工具 (Oval Tool) 、多邊星形 工具 (Rectangle Tool) 3 種。這些工具畫出 來的幾何圖形包括了筆畫線條和填色區域, 將它們適當地組合加上有技巧地變形與配 色, 不但比鉛筆工具簡單,
Matlab Assignment Due Assignment 兩個 matlab 程式 : Eigenface : Eigenvector 和 eigenvalue 的應用. Fractal : Affine transform( rotation, translation,
Chapter 20 塑模動態觀點:狀態圖 Statechart Diagram. 學習目標  說明狀態圖的目的  定義狀態圖的基本記號  展示狀態圖的建構  定義活動、內部事件及遞延事件的狀態 圖記號.
圖層的操作與管理 圖層的作用就如同一張張透明的賽璐璐片, 你可以將動畫中的每項物件, 放置在不同圖 層中, 圖層交疊就形成完整的畫面。在各圖 層中的物件, 做任何的移動或變化, 都不會 相互干擾, 所以當你編輯一個物件時, 只要 在物件所在的圖層進行操作, 將可大幅降低 製作過程的複雜度與難度。
: Happy Number ★ ? 題組: Problem Set Archive with Online Judge 題號: 10591: Happy Number 解題者:陳瀅文 解題日期: 2006 年 6 月 6 日 題意:判斷一個正整數 N 是否為 Happy Number.
: Fast and Easy Data Compressor ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10043: Fast and Easy Data Compressor 解題者:葉貫中 解題日期: 2007 年 3.
各種線上電子資源的特異功能 SwetsWise 的 alert, TOC alert 與 Favorites 2003/4/28 修改.
1 第 9 章 視窗應用程式的事件處理 9-1 事件的基礎 9-1 事件的基礎 9-2 表單事件 9-2 表單事件 9-3 滑鼠事件 9-3 滑鼠事件 9-4 鍵盤事件 9-4 鍵盤事件 9-5 表單的鍵盤事件 9-5 表單的鍵盤事件 9-6 控制項的事件 9-6 控制項的事件.
第 10 章 視窗應用程式的工具列與 功能表 10-1 主功能表控制項 10-1 主功能表控制項 10-2 快顯功能表控制項 10-2 快顯功能表控制項 10-3 工具列控制項 10-3 工具列控制項 10-4 狀態列控制項 10-4 狀態列控制項 10-5 字型與色彩對話方塊 10-5 字型與色彩對話方塊.
資料庫程式設計與系統管理 SQL Server 2005 Express 第六章 進階資料庫設計.
: Multisets and Sequences ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11023: Multisets and Sequences 解題者:葉貫中 解題日期: 2007 年 4 月 24 日 題意:在這個題目中,我們要定義.
1-6 動畫的文件屬性 舞台是動畫實際播放的畫面, 所以舞台的大 小與長寬比例對將來動畫的呈現有很大的 影響。 Flash 預設的舞台尺寸是 550 Pixels × 400 Pixels, 背景為白色, 如果要更改舞台大小與 背景色, 請執行『修改 / 文件』命令, 開啟文 件屬性 (Document.
:Nuts for nuts..Nuts for nuts.. ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 10944:Nuts for nuts.. 解題者:楊家豪 解題日期: 2006 年 2 月 題意: 給定兩個正整數 x,y.
從此處輸入帳號密碼登入到管理頁面. 點選進到檔案管理 點選「上傳檔案」上傳資料 點選瀏覽選擇電腦裡的檔案 可選擇公開或不公開 為平台上的資料夾 此處為檔案分類,可顯示在展示頁面上,若要參加 MY EG 競賽,做品一律上傳到 “ 98 MY EG Contest ” 點選此處確定上傳檔案.
資料結構實習-一 參數傳遞.
6-2 認識元件庫與內建元件庫 Flash 的元件庫分兩種, 一種是每個動畫專 屬的元件庫 (Library) ;另一種則是內建元 件庫 (Common Libraries), 兩者皆可透過 『視窗』功能表來開啟, 以下即為您說明。
第二章第二章 Statistica 的工具欄. 本章目標:工具欄之使用 介紹 STATISTICA 是一個非常好用的統計軟體,只 要你對微軟的 Office 套裝軟體有較熟悉的瞭解, 那對 STATISTICA 的工具欄就非常容易掌握。 STATISTICA 的文件組織有四種類型,即 Workbook.
企二 A 管理程式設計 Visual Basic 6.0 Visual Basic 6.0 Visual Basic 6.0 企二 A 管理程式設計 Visual Basic 6.0 Visual Basic 6.0 Visual Basic 6.0許翠婷
Hung-Hsiang WuWindows Processing Design1 Chapter 4 簡單視窗程式 表單與標籤的屬性 按鈕與編輯的屬性 設計簡單的應用程式 表單常用事件 一般鍵盤及滑鼠常見的事件 表單視窗間的呼叫 表單間資料傳送應用 專案選擇設定.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2008.
Management Abstracts Retrieval System; MARS 檢索操作.
Section 4.2 Probability Models 機率模式. 由實驗看機率 實驗前先列出所有可能的實驗結果。 – 擲銅板:正面或反面。 – 擲骰子: 1~6 點。 – 擲骰子兩顆: (1,1),(1,2),(1,3),… 等 36 種。 決定每一個可能的實驗結果發生機率。 – 實驗後所有的實驗結果整理得到。
函式 Function Part.2 東海大學物理系‧資訊教育 施奇廷. 遞迴( Recursion ) 函式可以「呼叫自己」,這種動作稱為 「遞迴」 此程式的執行結果相當於陷入無窮迴圈, 無法停止(只能按 Ctrl-C ) 這給我們一個暗示:函式的遞迴呼叫可以 達到部分迴圈的效果.
程式設計 Visual Basic 6.0 Visual Basic 6.0 Visual Basic 6.0 程式設計 Visual Basic 6.0 Visual Basic 6.0 Visual Basic 6.0許翠婷
JAVA 程式設計與資料結構 第二十章 Searching. Sequential Searching Sequential Searching 是最簡單的一種搜尋法,此演 算法可應用在 Array 或是 Linked List 此等資料結構。 Sequential Searching 的 worst-case.
演算法 8-1 最大數及最小數找法 8-2 排序 8-3 二元搜尋法.
2010 MCML introduction 製作日期: 2010/9/10 製作人 : 胡名霞.
Linguistics phonetic symbols. 先下載 IPA 字型檔案,執行安裝。 由於這個程式的字型目錄設定錯誤, 所以等重新開機時就會發現字型消失。 所以必須根據以下步驟來讓 Windows 加入 IPA 字型。
Structural Equation Modeling Chapter 6 CFA 根據每個因素有多重指標,以減少 測量誤差並可建立問卷的構念效度 驗證性因素分析.
Chapter 10 m-way 搜尋樹與B-Tree
概念性產品企劃書 呂學儒 李政翰.
Probability Distribution 機率分配 汪群超 12/12. 目的:產生具均等分配的數值 (Data) ,並以 『直方圖』的功能計算出數值在不同範圍內出現 的頻率,及繪製數值的分配圖,以反應出該 機率分配的特性。
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2009.
第 9 章 視窗應用程式的事件處理 9-1 事件的基礎 9-1 事件的基礎 9-2 表單事件 9-2 表單事件 9-3 滑鼠事件 9-3 滑鼠事件 9-4 鍵盤事件 9-4 鍵盤事件 9-5 表單的鍵盤事件 9-5 表單的鍵盤事件 9-6 控制項的事件 9-6 控制項的事件.
著作權所有 © 旗標出版股份有限公司 第 3 章 資料庫物件的關係. 本章提要 Access 資料庫物件的關係 Access 資料庫物件的關係 簡介 Access 的七大物件 簡介 Access 的七大物件 Access 的群組 Access 的群組.
函式 Function 東海大學物理系‧資訊教育 施奇廷. 函式簡介 當程式越來越大、越複雜時,程式的維護、 除錯會變得更困難,此時必須引入函式來 簡化程式或將程式分段,將程式重複的部 分改寫為函式,將程式「模組化」 這種作法有下列優點:節省程式發展的時 間、邏輯容易瞭解、程式容易除錯、可分 工合作完成程式.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2010.
Microsoft Excel.
Introduction to Java Programming Lecture 16 Super and Sub Classes.
: Finding Paths in Grid ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11486: Finding Paths in Grid 解題者:李重儀 解題日期: 2008 年 10 月 14 日 題意:給一個 7 個 column.
著作權所有 © 旗標出版股份有限公司 第 14 章 製作信封、標籤. 本章提要 製作單一信封 製作單一郵寄標籤.
幼兒行為觀察與記錄 第八章 事件取樣法.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
Presentation transcript:

精彩 Java 2 程式設計 C2 物件與事件控制技巧

2 目錄 C2-1 認識事件 C2-1 認識事件 C2-2 以時間事件來控制物件 C2-2 以時間事件來控制物件 C2-3 滑鼠控制技巧 C2-3 滑鼠控制技巧 C2-4 鍵盤控制技巧 C2-4 鍵盤控制技巧

3 C2-1 認識事件 改寫視窗程式的架構 事件與事件傾聽者 事件類別 事件傾聽者 視窗事件

4 改寫視窗程式的架構: 在開始介紹事件的觀念之前,希望能先引導 讀者改變程式的架構(因為這一章之前的程 式碼架構,與這一章之後的程式架構不一 樣)。

5 在 main() 程式中建立一個 frame 物件,然後設定 frame 物件屬性的程式碼如下: 若將新撰寫的程式類別繼承 JFrame ,而在 main() 視窗中使用所建立的 程式類別來建立程式物件,則這個物件便具有 JFrame 的特性,因此在 程式中,就可以直接使用繼承自 JFrame 的方法和屬性,或者實作介面。

6 直接使用繼承自 JFrame 的方法和屬性的程式架構 如下:

7 事件與事件傾聽者: 所謂事件( Event )是指軟體在執行的過程 中,所可能發生的情況。 事件( Event )是物件導向程式非常重要的 機制,是建立程式和使用者間溝通的橋樑。 在程式執行過程中,發生啟動程式、結束程 式、按下滑鼠鍵、放開滑鼠鍵、按下鍵盤、 打開視窗及關閉視窗等事件時,程式就可以 根據發生的事件內容,執行特定的程式碼。

8 事件的發生與處理: Java 的事件處理是一種委託式( delegation ) 事件處理模式,事件的發生與處理,是由事 件類別( Event Class )產生的物件( Event Object )與事件傾聽者( Event Listener )所 構成,其關係如下圖所示:

9 事件作業過程如下: 當我們移動滑鼠指標在按鈕(事件來源)上按一 下滑鼠鍵時,按鈕會送出一個物件給 Action 事件傾 聽者( ActionListener )。 ActionListener 事件傾聽者收到委託的物件後,便 會啟動 actionPerformed() 方法,執行指定的工作。

10 物件與處理事件的方法: 在程式中要使用事件傾聽者 ActionListener , 必須實作( implements ) ActionListener 。 按鈕物件要委託 ActionListener 處理事件,要 使用 add ActionListener() 方法。

11 按鈕物件委託 ActionListener 處理事件的程式碼如 下:

12

13 程式執行結果如下:

14 事件類別: Java 的事件類別大多數繼承自 java.awt.AWTEvent 類別。

15 繼承關係如下圖所示:

16 事件類別名稱的功能與產生時機說明如下:

17 其他同樣繼承自 EventObject 類別的事件類別: 其他同樣繼承自 EventObject 類別的事件類別, 包括 CaretEvent 、 ChangeEvent 、 HyperlinkEvent 、 LineEvent 、 ListDataEvent 、 ListSelectionEvent 、 MenuEvent 、 PopupMenuEvent 、 TableColumnModelEvent 、 TableModelEvent 、 TreeExpansionEvent 、 TreeModelEvent 、 TreeSelectionEvent 、 UndoableEditEvent 等等,這些事件類別都存 放在 javax.swing.event 程式套件中。

18 事件的特性: 根據事件的特性,可分為低階事件( low-level events ) 與語意事件( semantic events )兩種。 低階事件類別包括 ComponentEvent 、 ContainerEvent 、 FocusEvent 、 KeyEvent 、 MouseEvent 、 PaintEvent 、 WindowEvent 等。 語意事件類別包括 ActionEvent 、 AdjustmentEvent 、 ItemEvent 、 TextEvent 、 HierarchyEvent 、 InputMethodEvent 、 InvocationEvent 等。 一般來說,由視窗系統所產生,或滑鼠、鍵盤等 產生的事件為低階事件,此外則為語意事件。

19 事件傾聽者: EventListener (事件傾聽者)是一個介面 ( interface ,請參考 B2 ), EventListener 是 所有事件傾聽者介面的上層介面。

20 EventListener 包含下列子介面 -1 : ActionListener‘ 接收 ActionEvent AdjustmentListener‘ 接收 AdjustmentEvent ComponentListener‘ 接收 ComponentEvent ContainerListener‘ 接收 ContainerEvent FocusListener‘ 接收 FocusEvent HierarchyListener‘ 接收 HierarchyEvent HyperlinkListener‘ 接收 HyperlinkEvent InputMethodListener ‘ 接收 InputMethodEvent ItemListener‘ 接收 ItemEvent KeyListener‘ 接收 KeyEvent

21 EventListener 包含下列子介面 -2 : ListDataListener‘ 接收 ListDataEvent ListSelectionListener‘ 接收 ListSelectionEvent MenuListener‘ 接收 MenuEvent MouseListener‘ 接收 MouseEvent MouseMotionListener‘ 接收 MouseEvent MouseWheelListener‘ 接收 MouseEvent PopupMenuListener‘ 接收 PopupMenuEvent TableColumnModelListener‘ 接收 TableColumnModelEvent TableModelListener‘ 接收 TableModelEvent TextListener‘ 接收 TextEvent

22 EventListener 包含下列子介面 -3 : TreeExpansionListener ‘ 接收 TreeExpansionEvent TreeModelListener‘ 接收 TreeModelEvent TreeSelectionListener‘ 接收 TreeSelectionEvent UndoableEditListener‘ 接收 UndoableEditEvent WindowFocusListener‘ 接收 WindowEvent WindowListener‘ 接收 WindowEvent WindowStateListener‘ 接收 WindowEvent

23 事件聽者數到事件時的執行方法: 當事件傾聽者收到事件時,會分別執行不同 的方法。 例如 ActionListener 傾聽者介面會執行 actionPerformed() 方法,因此在程式中就要 實作 actionPerformed() 方法,而使用 KeyListener 傾聽者介面,則程式中就要實作 keyPressed() 、 keyReleased() 和 keyTyped() 等 方法。

24 視窗事件: 使用 WindowListener (視窗事件傾聽者)來 接收視窗事件,必須實作下列七個方法: windowActivated()‘ 視窗作用中 windowDeactivated()‘ 視窗沒有作用 windowOpened()‘ 視窗已經開啟 windowClosed()‘ 視窗已經關閉 windowClosing()‘ 關閉視窗中 windowIconified()‘ 最小化視窗 windowDeiconified()‘ 取消最小化視窗

25 前面章節中,有許多程式中都是利用下列程式碼 來關閉視窗,並結束程式: setDefaultCloseOperation(JFrame.EXIT_ON_ CLOSE);

26 使用 WindowListener 來接收關閉視窗的事件,進 而結束視窗程式,程式碼如下:

27

28

29 執行程式畫面顯示如下:

30 透過 WindowAdapter 類別來關閉視窗,程式碼如 下:

31 執行程式,選擇關閉視窗鈕就可以直接關閉視窗 程式,畫面顯示如下:

32 C2-2 以時間事件來控制物件 利用時間事件變化來移動物件 同時控制多個不同移動速度的元件 應用三角函數製作圓形運動 畫面上彈跳的小球

33 利用時間事件變化來移動物件: 時間事件可以用來控制視窗上元件的變化, 例如製作出元件緩緩上升的效果,畫面顯示 如下:

34 時間事件: 時間事件的時間單位為千分之一秒,若設定 為 500 ,則每 1/2 秒觸發一次。

35 以下就是製作氣球元件緩緩上升效果的程式碼:

36

37

38 同時控制多個不同移動速度的元件: 同時要控制多個不同移動速度的元件有兩種 方法。 一種是使用一個時間物件,然後設定各元件 不同的移動間隔;另一種是每一個元件分別 對應一個時間物件,而分別設定不同的時間 間隔。

39 控制多個不同移動速度的畫面顯示如下:

40 以下就是同時控制多個不同移動速度元件的程式 碼:

41

42 應用三角函數製作圓形運動: 應用內建的三角函數,包括 sin 、 cos 、 tan 、 atan…… 等等,可以應用這些函數來計算座 標的位置。 例如:圓形運動、拋物線運動等軌道座標計 算。

43 以下就是圓形軌道運動的執行畫面:

44 以下就是應用三角函數計算圓形軌道的程式碼:

45

46

47 畫面上彈跳的小球: 應用座標變化,可以製作出圖形彈跳的效果。

48 以下就是製作彈跳效果的程式碼:

49

50

51 執行程式,圖形就會有彈跳的效果:

52 C2-3 滑鼠控制技巧 滑鼠事件與事件傾聽者 顯示滑鼠座標位置 用滑鼠指標拉動佈景 簡易打地鼠程式 拖移物件與配對 座標位置記錄器

53 滑鼠事件與事件傾聽者: MouseListener 和 MouseMotionListener 是負責 接收滑鼠事件的傾聽者介面。

54 MouseListener 必須實作下列五個方法: mousePressed(MouseEvent e)‘ 按下滑鼠鍵 mouseReleased(MouseEvent e)‘ 放掉滑鼠鍵 mouseEntered(MouseEvent e)‘ 滑鼠進入按鍵 區 mouseExited(MouseEvent e)‘ 滑鼠離開按鍵 區 mouseClicked(MouseEvent e)‘ 按了一下滑鼠 鍵

55 MouseMotionListener 則必須實作下列兩個方法: mouseMoved(MouseEvent e)‘ 移動滑鼠 mouseDragged(MouseEvent e)‘ 拖移滑鼠

56 下面就是 MouseListener 接收滑鼠事件的程式碼:

57

58

59 完成圖: 執行程式時,當滑鼠在按鍵上發生按下、放 掉、進入、移開等事件時,視窗上會顯示事 件的訊息。

60 下面就是 MouseMotionListener 接收滑鼠事件的程 式碼:

61

62 執行程式,畫面顯示如下:

63 利用 InputEvent 事件判斷到底是按下左鍵還是右 鍵 :

64 以下就是測試滑鼠按鍵的程式碼:

65

66

67 完成圖: 當滑鼠在滑鼠按鍵區按下滑鼠左鍵,視窗上 方會顯示 “ 按了一下左鍵的訊息 ” ;當滑鼠在 滑鼠按鍵區按下滑鼠右鍵,視窗上方會顯示 “ 按了一下右鍵的訊息 ” 。

68 滑鼠事件與事件傾聽者的注意事項: 使用 MouseListener 和 MouseMotionListener 時, 不論使用哪一個方法,都必須把其它沒有用 到的方法輸入到程式中,否則,程式將無法 執行。

69 顯示滑鼠座標位置: 在應用滑鼠事件來執行程式時,經常需要滑 鼠的座標位置來輔助。

70 以下就是顯示滑鼠座標位置的程式碼:

71

72 完成圖: 在視窗中任意移動滑鼠,就會顯示滑鼠座標 的位置。

73 用滑鼠指標拉動佈景: 佈景和滑鼠指標的互動,也是製作動態網頁 經常使用到的技巧。

74 以下就是製作用滑鼠指標拉動佈景的程式碼:

75

76

77 完成圖:

78 簡易打地鼠程式: 這個例子的操作規則是畫面上會顯示小老鼠, 操作者只要在小老鼠上按一下滑鼠左鍵,就 可以得到 10 分。

79 以下就是設計簡易打地鼠程式的程式碼:

80

81

82 執行程式,畫面顯示如下:

83 拖移物件與配對: 使用滑鼠指標來拖移( drag )是經常使用到 的控制技巧,以下這個例子將說明拖移物件 和檢查位置等兩個技巧。

84 拖移物件和檢查位置的程式碼如下:

85

86

87

88

89 完成圖: 拖移水果到正確的位置,水果就會放在該處, 若放錯,則會彈回到原來的位置。

90 座標位置記錄器: 設計軟體時,若需要找出畫面上的座標位置, 可以設計一個簡單的程式來幫忙自動產生座 標串列。

91 以下就是製作座標記錄器的程式碼:

92

93

94 完成圖: 拖移紅色圓形物件到想要記錄座標的位置, 然後按一下滑鼠左鍵,就會將座標位置記錄 在下方的文字方塊區內。

95 C2-4 鍵盤控制技巧 鍵盤事件傾聽者與 按鍵值 使用 Enter 鍵輸入答案 利用鍵盤按鍵拉動佈景 模擬鍵盤按鍵狀態

96 鍵盤事件傾聽者與按鍵值: KeyListener 是負責接收鍵盤事件的傾聽者介 面, KeyListener 必須實作( implements )下 列三個方法: keyPressed(KeyEvent evt)‘ 按下按鍵 keyTyped(KeyEvent evt)‘ 按一下按鍵 keyReleased(KeyEvent evt)‘ 放掉按鍵

97 英文字母與數字鍵:

98

99 數字板( Keypad ):

100 功能鍵:

101 其它按鍵:

102 使用 Enter 鍵輸入答案: 使用 JTextField 物件,可以讓使用者直接輸 入資料,不過無法直接按 鍵,而下面 這個例子就可以在按 鍵後開始檢查答 案。

103 以下就是使用 鍵來輸入答案的程式碼:

104

105

106

107

108 完成圖: 完成後執行程式,依顯示的加法題目,在鍵 盤上輸入答案,然後按下鍵盤上的 鈕, 確認答案,就會出現答對了或答錯了的回饋 畫面。

109 利用鍵盤按鍵拉動佈景: 前一節曾經介紹使用滑鼠指標來拉動佈景的 技巧,當然,利用鍵盤按鍵也可以拉動佈景。

110 以下就是利用鍵盤按鍵拉動佈景的程式碼:

111

112

113 完成圖: 在鍵盤上按下 或 鍵,佈景就會被拉動 了!

114 模擬鍵盤按鍵狀態: 所謂模擬鍵盤按鍵狀態,是指在螢幕上顯示 鍵盤上的按鍵為按下的狀態,或放掉的狀態, 例如當同時按下鍵盤上的 A 、 B 鍵時,畫面 上的 A 、 B 鍵會呈現被按下的狀態。

115 以下就是製作模擬鍵盤按鍵狀態互動程式的程式 碼:

116

117

118