Microsoft PowerPoint - 18_Event.pptx

Similar documents
Microsoft Word - 投影片ch18

第1章

PowerPoint 簡報

Java事件处理模型

untitled

投影片 1

18_GUI

Chapter 9: Objects and Classes

<4D F736F F F696E74202D C DB5DA3136D5C25FCAC2BCFEC7FDB6AFB3CCD0F2C9E8BCC62E BBCE6C8DDC4A3CABD5D>

chp8.ppt

浙江师范大学2014年度毕业生就业质量报告

目 录 监 管 资 讯 2016 年 全 国 保 险 监 管 工 作 会 议 召 开...3 协 会 动 态 赤 峰 保 险 行 业 协 会 召 开 数 据 统 计 和 信 息 宣 传 总 结 表 彰 会 议...5 赤 峰 市 保 险 行 业 协 会 秘 书 处 召 开 2015 年 度 述 职

同 时, 采 取 提 供 新 闻 线 索 和 素 材 安 排 专 访 等 方 式 主 动 为 新 闻 媒 体 服 务, 为 采 访 报 道 活 动 创 造 便 利 条 件 建 设 网 络 信 息 发 布 平 台 2013 年 9 月 开 通 中 央 纪 委 监 察 部 网 站,2015 年 1 月

公務員服務法第13條相關解釋彙整表

大陸教育部等6個部門公佈「現代職業教育體系建設規劃 ( 年)」規劃到2015年初步形成現代職業教育體系框架,到2020年基本建成「中國」特色現代職業教育體系

资 讯 速 递 台 基 于 大 数 据 的 学 校 督 导 评 估 系 统 建 设 上 海 市 闵 行 区 人 民 政 府 教 育 督 导 室 ( 摘 要 ) 闵 行 教 育 在 深 化 教 育 改 革 探 索 管 办 评 分 离 的 背 景 下, 把 教 育 督 导 评 估 系 统 建 设 作 为

時間軸上的竹蓮記憶 學務主任 黃雅彙 我不是竹蓮國小的畢業校友 但對於身為新竹人的我來 說 仔細回想起來 似乎和竹蓮有著一種特別的緣分 對竹蓮國小最初的印象是在小學的時候 猶記得年幼的 我經過一段時日的啦啦隊舞蹈訓練後 老師便帶著我們從學 校步行到竹蓮國小來參加比賽 一踏入竹蓮校門 映入眼簾 的是黑

B1

Microsoft Word - 临政办发6.doc

B1

1








Chapter 3 Camera Raw Step negative clarity +25 ] P / Step 4 0 ( 下一頁 ) Camera Raw Chapter 3 089

電機工程系認可證照清單 /7/1

Microsoft PowerPoint - 11_EventHandle.pptx

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1


Microsoft Word - ACI chapter00-1ed.docx

Photoshop CS3 影像創造力 基礎講堂 8 學習流程 學習重要性 學習難度 必學指令工具 實作應用範例 創造舞台燈光的漸層繪圖 延伸學習 雜訊與半透明漸層 8-1 Photoshop Photoshop 8 136

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

图形用户界面 (GUI) 设计

投影片 1

Microsoft Word - 投影片ch11

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

eZiosuite

江西省2015届高校毕业生

輕鬆學 PhotoImpact X3 1 / / / 3 0 RGB 12,255,255 小常識 3 056

投影片 1

( 总 第 1124 期 ) 浙 江 省 人 民 政 府 主 办 2016 年 7 月 18 日 出 版 目 省 政 府 令 浙 江 省 行 政 执 法 证 件 管 理 办 法 ( 浙 江 省 人 民 政 府 令 第 346 号 ) (3) 省 政 府 办 公 厅 文 件 浙 江 省 人 民 政 府

現在人類獲取地球內部訊息的方法, 是從可能影響我們身家性命安全的地震, 用數學模型把地震資料轉換成地震波速度, 進而獲得地底物質密度與深度的關係 地下世界知多少 km/s g/cm 3 P Gpa km S P S 3,000 3,000 ak K 透視地底 Percy Bridgma


Swing-02.pdf

滑鼠事件的處置 01 首先, 思考一下用滑鼠畫線的操作動作, 為此必須處理 : mousedown mousemove mouseup 等 3 個事件 各個事件中進行的處理如表 01-1 所示 一開始加入的事件處理器只有 mousedown, mousemove mouseup 的事件處理器則是視需

关于印发广东省“互联网+”现代农业行动计划( 年)的通知

Pro/ENGINEER 訓練教材 ( 曲面 ) 目錄 1. Creo2.0 設定工作目錄 圖形

机关团体 31 的步子迈得更实更好 报告 审议通过 中国共产党如皋市 落实到党的建设各个方面 以良好作风保障经济社会又好 十一届代表第四次会议决议 经济技术开发区 城北街 又快发展 省委督导组副组长汪以力到会指导 南通市委 道 如皋工业园区 如城街道 白蒲镇 搬经镇 市发改 督导组组长葛维先出席会议

untitled

跨領域學位學程

投影片 1

M E M O 內 部 通 讯

M E M O 內 部 通 讯

Microsoft Word - 投影片ch15

严 格 遵 守 党 的 政 治 纪 律 政 治 规 矩 组 织 纪 律 和 廉 政 纪 律 正 确 处 理 管 理 工 作 和 个 人 学 术 工 作 的 关 系, 全 身 心 投 入 学 校 管 理 工 作, 减 少 社 会 兼 职 和 学 术 活 动, 党 委 书 记 和 院 长 不 担 任 科

二 基 本 架 構 Server image portx data porty client Listen Server Listen Port Window Port maintain connect Maintain user s data Sen

CU0594.pdf

目 录 前 言... 1 概 述... 2 一 2015 年 第 四 季 度 舆 情 热 度 分 析 热 度 排 行 事 件 类 型 分 析 地 域 分 布 分 析 情 感 倾 向 性 分 析 舆 论 情 绪 分 析.

<4D F736F F D20D6D0CDB6D6A4C8AFD7BFD4BDB0E6BBF9B1BEB2D9D7F7CBB5C3F7CAE92E646F63>

Microsoft PowerPoint - 遊戲企劃

運算子多載 Operator Overloading

untitled

The golden pins of the PCI card can be oxidized after months or years


B1

1-6 Access 2016 實力養成暨評量解題秘笈 102. 書籍與作者 Step1 按 建立 索引標籤 資料表 群組的 資料表設計 按鈕 Step2 由上而下分別建立下列欄位並設定資料類型 : 欄位名稱 : ID, 資料類型 : 自動編號 欄位名稱 : BName, 資料類型 :

赣州市三年主攻工业推进计划(2016—2018年)

前言 人類的歷史, 因 一個簡單的思維 而改變! 1776 Thomas Paine COMMON SENSE

Microsoft Word - Java全文.doc

運算子多載 Operator Overloading

本 期 要 目 学 工 动 态... 1 海 印 创 新 奖 学 金 总 结 座 谈 会 举 行... 1 副 校 长 万 清 祥 率 队 赴 江 陵 中 学 建 立 优 质 生 源 基 地... 2 第 四 届 学 园 文 化 节 第 十 四 届 社 区 文 化 节 总 结 表 彰 暨 闭 幕 式

Microsoft Word - RHUB产品手册V5 1 2


mvc

杭州师范大学2013年本科教学质量报告

深圳市跨境易电子商务有限公司

Microsoft PowerPoint - VB14.ppt

untitled

目 录 软 件 概 述 软 件 用 途 软 件 运 行 系 统 配 置... 3 使 用 入 门 软 件 登 录 与 退 出 页 面 介 绍... 6 组 别 账 号 编 辑 组 别 编 辑.

Chapter 9: Objects and Classes

資料結構之C語言重點複習

二把刀!【分享篇】美容院老板说“自己从来不做美容” 。看完后我

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

10-2 SCJP SCJD 10.1 昇陽認證 Java 系統開發工程師 的認證程序 Java IT SCJD


Microsoft Word - 正文.doc

游戏攻略大全(三十一).doc

投影片 1

TPM BIOS Infineon TPM Smart TPM Infineon TPM Smart TPM TPM Smart TPM TPM Advanced Mode...8

jsj0.nps

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

事件的處理

Transcription:

第十八章事件處理 認識 Java 的委派事件模式認識並學習使用各種事件處理學習各種物件的事件處理 1

18.1 委派事件模式 委派事件 指當事件發生時, 產生事件的物件會把 訊息 轉給 事件傾聽者 (event listener) 處理 下圖說明 委派事件模式 的運作流程 : 2

簡單的範例 18.1 委派事件模式 視窗內加入按鈕, 尚未加入事件的處理之程式 : 視窗內有一按鈕, 當此按鈕按下時, 視窗的顏色會有變化, 下圖說明此範例的執行流程 3

18.1 委派事件模式 傾聽者與註冊 傾聽者通常會讓包含 事件來源者 的物件來擔任 我們不能把 app18_1 的第 5 行撰寫成下面的敘述, 又讓 frm 充當傾聽者 : 按鈕觸發事件由 ActionListener 介面傾聽, 第 3 行修改成 : 決定事件來源者與傾聽者後, 接著向事件來源者註冊 : 4

18.1 委派事件模式 撰寫事件處理的程式碼 本例的事件處理是把視窗的底色改成黃色, 因此可以撰寫出如下的程式 : actionperformed() method 會接收 ActionEvent 型態的物件, 正是按鈕按下後傳過來的物件 由於會用到 ActionEvent, 必須載入包含此的庫 : 5

18.1 委派事件模式 最後的完成工作 (1/2) 重新整理, 可得到下面的程式碼 : 6

18.1 委派事件模式 最後的完成工作 (2/2) app18_2 的執行流程 : 7

18.1 委派事件模式 內部當成傾聽者 下面的程式是定義內部後, 將它當成傾聽者 : 宣告成 static 是因為在外部的 函數 內, 不能建立內部物件 8

18.2 認識事件處理 事件 AWTEvent 是所有事件的最上層 下圖為事件的繼承關係圖 : 事件大致分為兩種 : 語意事件 (semantic events) 低階事件 (low-level events) 9

事件傾聽者的繼承關係 18.2 認識事件處理 下圖顯示出事件傾聽者之間的繼承關係 : 10

18.2 認識事件處理 事件與傾聽者的 method 事件 事件傾聽者介面與傾聽者介面裡所提供的 method 11

18.2 認識事件處理 可能觸發的事件整理 物件與可能觸發事件的對應關係, 整理成下表 : 某些物件可能會觸發多個事件, 只需針對所要的事件撰寫程式碼 12

18.3 使用 ActionEvent 觸發動作事件 觸發事件的物件把 ActionEvent 的物件傳送給向它註冊的傾聽者, 請它負責處理 getsource() method 可傳回事件來源物件 getmodifiers() method 可取得事件發生時所按下的按鍵 按鍵被按下的常數定義在 InputEvent, 列表如下 : 13

加入關閉視窗的按鈕 (1/2) app18_4 是 ActionEvent 的使用範例 18.3 使用 ActionEvent 14

加入關閉視窗的按鈕 (2/2) 18.3 使用 ActionEvent getsource() 可能會傳回其父的物件, 因此必須先將它強制型態轉換成 Button exit(0) 代表正常結束, 其它整數代表非正常結束 15

18.4 使用 ItemEvent ItemEvent 的成員 視窗中的選項物件被選取時, 會觸發 選項事件 ItemEvent 事件的傾聽者須實作 ItemListener 介面, 該介面定義 itemstatechanged() method: ItemEvent 提供一些成員列表如下 : 16

18.4 使用 ItemEvent 選項事件的範例 (1/2) app18_5 的物件配置圖與程式碼如下所示 : 物件配置圖 執行結果 17

18.4 使用 ItemEvent 選項事件的範例 (2/2) 物件配置圖 執行結果 18

18.5 文字事件的處理 --TextEvent 文字事件 文字事件 (text event) 當 TextField 或 TextArea 物件裡的文字改變時所觸發的事件 TextEvent 處理文字事件 TextListener 為傾聽 TextEvent 事件的介面 TextListener 介面定義 textvaluechanged() method: 19

文字事件的範例 18.5 18.5 文字事件的處理 --TextEvent TextEvent 的使用範例 物件配置圖 在左邊的 TextArea 中輸入文字, 右邊的 TextArea 會跟著顯示相同的文字 20

按鍵事件 18.6 按鍵事件的處理 --KeyEvent 按鍵事件 (KeyEvent class) 繼承自 InputEvent 屬於低階層的事件 下表列出 KeyEvent 常用的 method: KeyEvent 事件須實作 KeyListener 介面來當成傾聽者 KeyListener 介面的事件處理 method keypressed() keyreleased() keytyped() 21

18.6 按鍵事件的處理 --KeyEvent 事件轉接器 事件轉接器 (adapter) 內定義的是 " 空的 " method 只須針對相關的事件處理撰寫程式碼 處理 KeyEvent 事件的有 2 種 KeyListener 介面 KeyAdapter 22

KeyListener 介面 18.6 按鍵事件的處理 --KeyEvent 須以實作 KeyListener 介面 KeyListener 介面裡宣告三個 method, 列表如下 : 23

18.6 按鍵事件的處理 --KeyEvent KeyEvent 使用的範例 (1/2) app18_7 的物件配置與程式碼如下所示 : 物件配置圖 執行結果 24

18.6 按鍵事件的處理 --KeyEvent KeyEvent 使用的範例 (2/2) 物件配置圖 執行結果 25

KeyAdapter 事件 KeyAdapter 18.6 按鍵事件的處理 --KeyEvent 事實上是 " 空的 ", 也就是沒有任何敘述的 method 實作 KeyListener 介面 若只針對 keypressed() 事件撰寫程式碼, 此時的 keypressed() 即利用 改寫 (overriding) 的技術, 覆蓋定義於 KeyAdapter 裡空的 keypressed() method 26

KeyAdapter 的範例 18.6 按鍵事件的處理 --KeyEvent 以 KeyAdapter 事件處理 KeyEvent 事件的範例 先產生 KeyLis 的物件, 再把它當成是 txf 的事件傾聽者 必須宣告成 static 才能被 main() method 存取 某些按鍵如 Shift Ctrl 與 Alt 等, 並沒有被歸類為 Action key, 但又不屬於可列印字元, 諸如此類的按鍵會以 來顯示 取得鍵入的字元 27

滑鼠事件的 method 18.7 滑鼠事件的處理 --MouseEvent 滑鼠事件 (MouseEvent class) 繼承自 InputEvent 觸發滑鼠事件的動作 滑鼠的按鈕按下 滑鼠指標進入或移出事件來源物件 移動 拖曳滑鼠等 下表是 MouseEvent 裡常用的 method: 28

MouseListener 介面 滑鼠事件的傾聽者 MouseListener 介面 MouseMotionListener 介面 18.7 滑鼠事件的處理 --MouseEvent MouseListener 介面主要傾聽下列 5 項事件 : 按一下滑鼠按鈕 ( 包括滑鼠左鍵或右鍵 ) 滑鼠的指標移到事件的來源物件 ( 如按鈕 ) 的上方 滑鼠的指標從事件的來源物件 ( 如按鈕 ) 的上方移出 按下滑鼠的任一個按鍵 放開滑鼠被按下的按鍵 29

18.7 滑鼠事件的處理 --MouseEvent MouseListener 介面的 method MouseListener 介面裡定義的 method: 30

18.7 滑鼠事件的處理 --MouseEvent MouseMotionListener 介面 MouseMotionListener 介面用來傾聽下列事件的發生 : 當滑鼠在事件的來源物件上方移動 (move) 時 當滑鼠在事件的來源物件上方拖曳 (drag) 時 MouseMotionListener 介面裡定義的 method: 滑鼠事件的處理可利用 MouseAdapter MouseMotionAdapter 31

18.7 滑鼠事件的處理 --MouseEvent 使用 MouseListener 介面 (1/2) app18_9 的物件配置與程式碼如下所示 : 物件配置圖 執行結果 32

18.7 滑鼠事件的處理 --MouseEvent 使用 MouseListener 介面 (2/2) 物件配置圖 執行結果 33

MouseMotionListener 介面 (1/2) MouseMotionListener 介面用來傾聽的事件 滑鼠移動 拖曳 18.7 滑鼠事件的處理 --MouseEvent 利用 addmousemotionlistener() method 註冊事件傾聽者 app18_10 是 MouseMotionListener 介面使用的範例 當滑鼠拖曳或移動時, 此處便會顯示出滑鼠指標的座標 34

18.7 滑鼠事件的處理 --MouseEvent MouseMotionListener 介面 (2/2) 當滑鼠拖曳或移動時, 此處便會顯示出滑鼠指標的座標 35

MouseAdapter 18.7 滑鼠事件的處理 --MouseEvent 以 MouseAdapter 事件處理 MouseEvent 事件的範例 必須宣告成 static 才能被 main() method 存取 36

18.7 滑鼠事件的處理 --MouseEvent 使用 MouseMotionAdapter MouseMotionAdapter 已實作 MouseMotionListener 介面 處理 MouseEvent 的事件的步驟 以繼承 MouseMotionAdapter 的方式建立新 再以此的物件當成傾聽者 37

WindowEvent 的 method 視窗事件 (WindowEvent class) 屬於低階的事件 觸發視窗事件的動作 視窗的建立 視窗縮小至工具列 關閉視窗 18.8 視窗事件的處理 --WindowEvent WindowEvent 提供的 method: 38

18.8 視窗事件的處理 --WindowEvent WindowListener 介面的 method 下表列出 WindowListener 介面定義的 method: 39

18.8 視窗事件的處理 --WindowEvent 使用 WindowAdapter (1/2) app18_12 以 WindowAdapter 來處理視窗事件 執行結果會因觸發視窗事件而定 此處也可使用 System.exit(0); 以此方式關閉視窗, 資源不會被釋放 40

18.8 視窗事件的處理 --WindowEvent 使用 WindowAdapter (2/2) 執行結果會因觸發視窗事件而定 41