18_GUI

Similar documents
PowerPoint 簡報

投影片 1

Microsoft PowerPoint - 18_Event.pptx

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

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

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

Swing-02.pdf

視窗程式設計

Microsoft Word - 投影片ch11


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

(京)新登字063号

Autodesk Product Design Suite Standard 系統統需求 典型使用用者和工作流程 Autodesk Product Design Suite Standard 版本為為負責建立非凡凡產品的設計師師和工程師, 提供基本概念設計計和製圖工具, 以取得令人驚驚嘆

運算子多載 Operator Overloading

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes

D C 93 2

投影片 1

勞動條件檢查執行重點(雲林)_ [相容模式]

醋 水 法 在 水 盆 內 放 入 約 七 分 滿 的 水 與 1/2 到 1 小 杯 的 醋 量, 將 髒 襪 子 浸 泡 一 晚, 隔 天 再 丟 入 洗 衣 機, 就 能 洗 得 相 當 乾 淨 醋 有 殺 菌 除 臭 和 漂 白 功 效, 使 用 過 的 醋 水, 還 可 清 理 地 板,

穨 PDF

Microsoft Word - 完全手冊-課程.doc

第一冊 第四章 分裂與再統一 班級 座號 姓吊

Microsoft Word - 2B802內文.doc

東區校園中法治教育種子師資教學研習營

閱 讀 素 材 V.S 分 組 方 式 的 差 異 化 教 學 工 具 表 班 級 :( ) 閱 讀 素 材 V.S 分 組 方 式 獨 立 閱 讀 夥 伴 閱 讀 ( 同 質 性 ) 夥 伴 閱 讀 ( 異 質 性 ) 友 善 陪 伴 虛 心 受 教 國 語 日 報 新 聞 生 活 文 藝 兒 童

Microsoft Word - 1HF12序.doc

Microsoft Word - 讀報看科普─人體篇_橫_.doc

鍟嗗搧瑙傚療鈥㈤挗鏉

席 远 杨 一 人 了, 正 当 她 开 枪 时 却 发 现 子 弹 没 了 该 死, 只 能 赤 手 空 拳 了 洛 水 云 与 席 远 杨 交 起 手 来, 洛 水 云 出 手 招 招 致 命 想 那 席 远 杨 也 不 是 泛 泛 之 辈, 很 快 掌 握 了 洛 水 云 出 招 路 数 看

1.5招募说明书(草案)

投影片 1

德阳市文化馆​德阳市作协举办儿童诗人杨一郎诗集《初心》座谈交流会

書面

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

投影片 1

基于CDIO一体化理念的课程教学大纲设计

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

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

Microsoft Word - 投影片ch23

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题

案號 :LP 京年升 : 16-LP 第一組個人電腦 鎮億年 : 16-LP 項次契約金額廠牌型號產地品名共同規格 acer Veriton M2640G 臺灣 ASUS MD330 臺灣 MSI 微星科技捷元 GENUINE ProDesk 400 G3

APA Preliminaries Text Reference 1. Cover Page 2. Title Page 3. Signature Page 4. Advisor s recommendation letter 5. Approval page 6. Copyri

xii 前言 P-1 Charles Perrow Normal Accidents P-1 vs.

使用手冊

untitled

投影片 1

<4C50352D B971B8A3B35DB3C6A655B2D5A9FAB2D32E786C73>

愛滋實務與治理的政治 - 綜合論壇 以及面對這一連串以 責任 為架構衍生出來的愛滋政策如何造就了台灣現在的愛滋處境

2016 勒索軟體白皮書

CU0594.pdf

The Embedded computing platform

1


2017政府共同供應契約採購指南V3.xls

Microsoft Word Microsoft Word


Microsoft PowerPoint - chap08.ppt

二次曲線 人們對於曲線的使用及欣賞 比曲線被視為一種數學題材來探討要早 得多 各種曲線中 在日常生活常接觸的 當然比較容易引起人們的興趣 比如 投擲籃球的路徑是拋物線 盤子的形狀有圓形或橢圓形 雙曲線 是較不常見的 然而根據科學家的研究 彗星的運行軌道是雙曲線的一部 分 我們將拋物線 圓與橢圓 雙曲


封面-12

Microsoft PowerPoint - VB14.ppt

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

樣 的 深 不 管 是 怎 樣, 對 方 真 的 要 結 束 同 居 關 係, 真 的 都 會 好 好 講 清 楚 和 溝 通, 傷 害 是 一 定 會 有, 但 不 要 用 到 雙 方 像 敵 人 一 樣, 這 樣 對 雙 方 來 說, 有 什 麼 意 義 存 在 呢?! 因 為 彼 此 之 間

建立Android新專案

Microsoft Word - 2CA13內文.doc

Dynamic Layout in Android

PowerPoint Presentation

Excel VBA Excel Visual Basic for Application

Chapter 9: Objects and Classes

优迈科技教学大纲2009版本

Microsoft Word - CH14.doc

觀 音 佛 祖 送 給 衣 宸 的 話 005 自 序 007 Part 1 修 行 心 體 驗 一 篇 看 見 佛 祖 012 二 篇 在 家 修 行 039 三 篇 世 界 的 創 造 者 054 四 篇 大 慈 悲 079 五 篇 最 珍 貴 的 禮 物 095 六 篇 自 救 法 力 練 習

第 一 章 UI 概 述 单 元 设 计 : 课 题 名 称 :UI 综 述 教 学 任 务 :1 UI 是 什 么? 2 UI 设 计 师 是 做 什 么 的? 3 UI 在 中 国 的 现 状 如 何? 4 数 据 时 代 的 用 户 体 验 (APP 视 觉 设 计 艺 术 ) 教 学 方 式

第 二 章 校 草 出 现 圣 迪 亚 学 院, 一 所 远 近 闻 名 的 贵 族 学 院 它 的 知 名 度 就 好 像 猪 的 知 名 度 一 样, 无 人 不 知 无 人 不 晓 是 所 有 人 都 向 往 的 学 校 圣 迪 亚 学 院 是 以 欧 式 建 筑 风 格 为 主 的 大 门

Microsoft Word - 21??¡N??`?C?~??-1.doc, page Normalize ( Microsoft Word - 21ºÝ¤È¸`§C¦~¯Å-1.doc )

理性真的普遍嗎 注意力的爭奪戰 科學發展 2012 年 12 月,480 期 13


Learning Java

Java事件处理模型

【结构化面试名师精品班2ATY15K002】讲义.docx

題目:

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

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

ZW1.PDF

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

1.5招募说明书(草案)

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

untitled

(Microsoft Word - \272\364\263q\245|\244A_ _\304\254\253\330\336\263__\272\353\302\262\263\370\247i.doc)

1711-門市-PC-p1p2

第一組個人電腦主機

Microsoft PowerPoint ppt

Microsoft PowerPoint htm

.. 3 N

《大话设计模式》第一章

2016 英雄聯盟世界大賽暨全明星賽官方指定夥伴 Predator G1-710 Predator G3-710 Predator G6-710 Turbo**G6 IceTunnel 3/27-5/5PredatorGefore GTX 10 [Predator] :

運算子多載 Operator Overloading

JavaIO.PDF

02 2 成立 Facebook 粉絲專頁 Facebook Facebook Facebook 1, Facebook Facebook 1 Facebook 2-21

Transcription:

圖形使用者介面 什麼是圖形使用者介面? 圖形使用者介面 (Graphics User Interface, GUI) 以圖像方式與使用者互動 : 程式顯示訊息 程式顯示資訊 操介界面 例子 : 電視遊樂器 電腦遊戲 Yung-Chen Chou 1

圖形使用者介面 要讓 Java 在 MS Windows 作業系統下或 Linux/Unix 下的 X windows 環境下以圖形方式呈現必須靠 Java 的 AWT 或 Swing 套件 藉由 AWT 及 Swing 提供的 GUI 元件便可畫出程式的使用者介面 Yung-Chen Chou 2

JAVA AWT vs. Swing Java 推出時僅提供 AWT(Abstract Windows Toolkit) 這套 GUI 元件 Java 1.1 時又推出 Swing 強化的 GUI 類別庫 AWT 所提供的功能比較陽春 提供基本的 GUI 元件, 如視窗 按鈕 Swing 剛推出時算是外加的擴充模組到 Java 1.2 時被納入 Java 核心之中 Swing 與 AWT 最大不同 : Swing 都是由 JAVA 自行繪製, 而不是靠作業系統, 因此 Swing 畫出來的介面在不同作業系統下會比較一致 Yung-Chen Chou 3

JAVA Swing Swing 套件 匯入 Swing 套件 : 套件名稱 javax.swing.*; 匯入 Swing 套件後便可使用其所提供的 GUI 元件, 產生 GUI 物件 Component 類別 Swing 中最常用的類別, 包含按鈕 功能表 工具列 文字方塊 下拉選單... 等 Yung-Chen Chou 4

JAVA Swing (Cont.) Yung-Chen Chou 5

JAVA Swing (Cont.) 容器類別 要顯示各種 GUI 元件, 必須要先有視窗或其它類型的容器物件 (Container) 來包含這個元件 所以圖形介面程式一開始必須要先建立一個容器物件, 才能將所需元件加到容器物件中, 並顯示出來 Swing 的容器物件種類 JFrame : 典型視窗, 建立一般視窗時使用 JDialog : 交談窗類別的視窗 JWindow: 不含視窗標題等基本視窗要件的陽春型視 窗 Yung-Chen Chou 6

JAVA Swing (Cont.) JInterFrame 與 JPanel : 兩者均不能用來建立獨立的視窗, 必須在前述三種容器物件中使用 建立子視窗可用 JInterFrame 建立面版則必須靠 JPanel 建立陽春型的視窗 設定當使用者關閉視窗時要做什麼動作 EXIT_ON_CLOSE 這個常數的意思, 就是指在關閉視窗時即結束程式 Yung-Chen Chou 7

JAVA Swing (Cont.) 建立視窗後, 將元件加入 容器 裡 不能將元件直接加在 JFrame JDialog 裡, 必須放在 Content Pane 裡才行 將 JFrame 想像成視窗的外框 Content Pane 想像成視窗中實際可用的區域 Yung-Chen Chou 8

JAVA Swing (Cont.) 要取得 JFrame 的 Content Pane 必須呼叫 public Container getcontentpane() 方法 接著呼叫 Component add(component comp) 方法 ps. 此方法是繼承自 java.awt.container Yung-Chen Chou 9

JAVA Swing (Cont.) JFrame JDialog JWindow 都是 java.awt.window 的衍生類別, JWindow 定義了一組視窗容器共用的操作方法 Yung-Chen Chou 10

GUI 的事件處理 AWT 的委派事件處理 當使用者在 GUI 元件中做動作時都會產生事件 (Event), 例如 : 按下按鈕 如何達到按下按鈕會有動作? 撰寫事件處理方法來處理相對應的事件 通知會產生該事件的元件 : 我的物件要當事件的傾聽者 (Listener) Yung-Chen Chou 11

GUI 的事件處理 (Cont.) Yung-Chen Chou 12

GUI 的事件處理 (Cont.) 實作 XXXListener 介面 : 負責事件處理的類別必須宣告實作 XXXListener 介面 不同類型的事件需要實作不同的介面 常見的介面如下 Yung-Chen Chou 13

GUI 的事件處理 (Cont.) 撰寫事件處理方法 : 即上述的 Listener 介面中所宣告的方法 每種介面所宣告方法數量都不一 例如 : ActionListener 介面只有 actionperformed() 方法 MouseMotionListener 介面有 mousedragged() 及 mousemoved() 兩個方法 需要回應事件的動作寫在對應的方法中 例 : 使用者按鈕時希望改變視窗的背景顏色, 則改變顏色的指令要寫在 actionperformed() 裡 Yung-Chen Chou 14

GUI 的事件處理 (Cont.) 告知元件我們要當傾聽者 在程式中呼叫按鈕元件的 addactionlistener() 方法, 目的是通知該元件, 我們的物件是個傾聽者 按下按鈕時會呼叫我們寫好的 actionperformed() 方法, 執行我們指定的動作 呼叫 addactionlistener() 方法時, 必須實作 actionlistener 介面的物件為參數, 意即 我這個物件是個傾聽者 程式中並不會呼叫 actionperformed() 事件處理方法, 因為這個方法是給元件呼叫的, 是事件處理架構是一種被動被動的處理方法 Yung-Chen Chou 15

實作 Listener 介面 如何寫一個會處理按鈕事件的傾聽者? 此部份功能源自 AWT 必須匯入 awt.event.*; 套件 實作 Listener 介面可在主程式外另建一個類別, 將其宣告實作 Listener 介面, 同時實作事件處理方法 利用主程式外的類別來實作 Listener 介面將使得程式撰寫變得複雜, 因為我們通常會在事件處理方法中使用到視窗容器或其他元件物件 建議 : 在主程式中實作 Listener 介面 Yung-Chen Chou 16

實作 Listener 介面 以處理按鈕事件為例, 必須完成三個動件 宣告實作 Listener 介面 撰寫事件處理方法 告知元件我們要當傾聽者 Yung-Chen Chou 17

實作 Listener 介面 有趣的問題 程式並未呼叫 actionperformed(), 按鈕卻會有動作 事件處理方法是被元件 (or 系統 ) 呼叫 不同於以往呼叫元件 (or 系統 ) 提供的方法 事件處理方法也稱 call-back 方法 如何處理多個按鈕的事件? 在視窗中多加幾個元件或按鈕, 以按鈕為例, 不同按鈕做不同事, 但類別中只有一個 actionperform() 方法, 如何達到要求? Yung-Chen Chou 18

實作 Listener 介面 簡單作法 在 actionperformed() 方法中用 if 或 switch 等方法檢查產生事件的是哪一個元件, 以決定要做哪些動作 此種作法僅適用於性質 / 功能相似的方法 Yung-Chen Chou 19

實作 Listener 介面 要處理完全不同性質的按鈕元件 使用 JAVA 提供的內部類別程匿名類別功能 此種寫法較符合物件導向 具有較佳的閱讀性及方便程式撰寫 內部類別 定義在另一個類別內部, 且非 static 的類別 巢狀類別 (Nested Class): 定義在另一個類別內部的類 別 內部類別 (Inner Class): 未被明確或隱含宣告為 static 的巢狀類別 Yung-Chen Chou 20

實作 Listener 介面 相對於內部類別而言, 包含住它的類別稱之為外部 (Outter) 類別, 或稱之為外層類別 回想一下 : 類別內部的方法可存取類別內部的成 員 Yung-Chen Chou 21

實作 Listener 介面 內部類別最大的特點, 內部類別可存取外部類別 的成員 注意 宣告為 static 的巢狀類別則無法存取外部類別的成員 Yung-Chen Chou 22

匿名類別 (Anynomous Class) 只有類別的本體, 但沒有類別的名稱, 進一步說, 連物件的參照變數都不用宣告 在使用物件時才同時定義類別和產生物件的類別 物件導向程式設計的特性之一, 就是軟體元件 ( 類別 ) 的重複使用性 一般情況下, 定義一個類別即可在程式中用它來建立多個物件, Yung-Chen Chou 23

匿名類別 (Anynomous Class) (Cont.) 有時在程式中所設計的類別在程式中只用到一次, 不會重複使用到, 此時適合利用匿名類別 使用匿名類別也可以使程式碼較簡化 只要在需要匿名類別物件的敘述上, 直接將類別物件放在要產生物件的地方 匿名類別必須衍生自一既有的類別或介面下 Yung-Chen Chou 24

匿名類別 (Anynomous Class) (Cont.) 以匿名類別實作 actionlistener 當視窗含有多個按鈕元件, 又不適合統一用一個類別來實作所有的元件傾聽者, 可以用匿名類別實作 Yung-Chen Chou 25

匿名類別 (Anynomous Class) (Cont.) Yung-Chen Chou 26