1 / 57

JAVA 2 新觀念教本

JAVA 2 新觀念教本. --- 邁向 SCJP 專業認證 ---. 易瓏資訊 林新德 著. 第 15 章 AWT 視窗程式設計. Java 的圖形化使用者介面 AWT 元件的繼承關係 容器 事件的處理 AWT 基本元件 版面配置. 15-1 Java 的圖形化使用者介面. 15-1 Java 的圖形化使用者介面. Microsoft Word的一個擷取畫面,可以看到其組成包括選單(Menu)、文字列(TextField)及按鈕(Button)等元件。. 15-1-1  認識圖形化使用者介面. 15-1 Java 的圖形化使用者介面.

nansen
Download Presentation

JAVA 2 新觀念教本

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JAVA 2 新觀念教本 ---邁向SCJP專業認證--- 易瓏資訊 林新德 著

  2. 第15章 AWT視窗程式設計 • Java的圖形化使用者介面 • AWT元件的繼承關係 • 容器 • 事件的處理 • AWT基本元件 • 版面配置

  3. 15-1 Java的圖形化使用者介面

  4. 15-1 Java的圖形化使用者介面 Microsoft Word的一個擷取畫面,可以看到其組成包括選單(Menu)、文字列(TextField)及按鈕(Button)等元件。 15-1-1 認識圖形化使用者介面

  5. 15-1 Java的圖形化使用者介面 舊的圖形介面工具AWT(Abstract Window Toolkit) 新的圖形介面工具Swing 整合工具Accessibility API 高品質繪圖功能的2D API 拖曳功能(drag and drop)的API 15-1-1 認識圖形化使用者介面 • Java Foundation Classes包括的部份:

  6. 15-1 Java的圖形化使用者介面 15-1-2AWT • AWT使用大家都有的功能

  7. 15-1 Java的圖形化使用者介面 15-1-2AWT • AWT元件在不同作業系統的外觀不同

  8. 15-1 Java的圖形化使用者介面 幾乎無法延伸子類別 在不同系統上外觀相異 消耗較多的系統資源 15-1-2AWT • AWT的缺點: • AWT直接和視窗作業系統溝通,所以元件初始化之後,其執行的速度會比Swing快一些。

  9. 15-1 Java的圖形化使用者介面 可以利用擴充子類別改進元件的功能 固定的外觀 耗用較低的系統資源 15-1-3Swing • Swing的優點: • Swing和一般的Java工具一樣擁用跨平台的優點,然而也有著相同的缺點,就是較慢一點點。

  10. 15-2 AWT元件的繼承關係

  11. 15-2 AWT元件的繼承關係 15-2-1Component的延伸類別

  12. 15-2 AWT元件的繼承關係 15-2-2MenuComponent的延伸類別

  13. 15-2 AWT元件的繼承關係 15-2-2MenuComponent的延伸類別 • 以「記事本」為例說明選單及其相關元件

  14. 15-2 AWT元件的繼承關係 建立元件 將元件加入容器 配置容器內元件的位置 處理由元件所產生的事件 15-2-3 建立GUI的步驟

  15. 15-3 容器

  16. 15-3 容器 • Container的延伸類別

  17. 15-3 容器 Frame類別可以建立圖形化系統的視窗,通常稱之為框架。 一個程式可以擁有一個以上的框架。 Frame是AWT的頂層元件。 Frame顯示有邊框的視窗,邊框的標題列可以讓使用者在螢幕上拖曳整個框架,也可以由邊框改變框架的大小。 15-3-1Frame

  18. 15-3 容器 Frame的建構子及常用方法 15-3-1Frame

  19. 15-3 容器 Panel的預設版面管理員為FlowLayout。 FlowLayout會將容器中的元件依照元件的偏好大小,從左至右、由上到下排列。 Panel和檔案目錄夾的概念是一樣的,可以有巢狀的結構。 15-3-2Panel

  20. 15-3 容器 Dialog物件也是頂層元件,不過它必須依附在Frame或其它Dialog上。 Dialog物件的主要用處是當做對話的小視窗,其邊框上只有關閉按鈕,沒有最小化或最大化的按鈕。 Dialog的預設版面管理員為BorderLayout。 15-3-3Dialog

  21. 15-4 事件的處理

  22. 15-4 事件的處理 事件(event)其實是就是一種物件。 元件透過傳送事件物件(event object)的方式,傳達使用者按下滑鼠按鈕或鍵盤按鍵等事件。 事件本身就存在特定的事件資訊,接收事件的傾聽者可以由事件的資訊進行處理。 欲讓事件能順利由來源元件傳送給傾聽者處理,必須將傾聽者指定給元件(相當於一種註冊動作)。 AWT元件可以使用的事件和傾聽者都包含在java.awt.event套件裡。 15-4-1 事件

  23. 15-4 事件的處理 每個傾聽者都必須實作傾聽者介面或是繼承自轉接者(Adapter)。 轉接者為實作傾聽者介面的類別,其定義的傾聽者方法都是空方法,不對事件作任何處理。 傾聽者介面都以Listener為識別字尾,而轉接者都以Adapter為識別字尾 傾聽者方法都是以 void定義,參數為事件,不回傳任何值。 15-4-2 傾聽者

  24. 15-4 事件的處理 元件加入傾聽者是使用add???Listener()方法,???表示某種型態的事件。 元件解除和傾聽者之間的關係,不再將發生的事件傳給傾聽者,使用remove???Listener()方法。 一個事件來源可以將事件傳送給多個傾聽者,而多個不同來源的事件也可以傳送給單一個傾聽者。 15-4-3 事件的傳送

  25. 15-4 事件的處理 傾聽者和來源物件沒有一對一的限定 15-4-3 事件的傳送

  26. 15-4 事件的處理 容器的傾聽者介面 15-4-4 傾聽者介面

  27. 15-4 事件的處理

  28. 15-4 事件的處理

  29. 15-4 事件的處理 MyWindowClosing.java:需要在框架上的關閉鈕加入離開程式的功能時,可以建立MyWindowClosing物件並設定給框架作為傾聽者。 15-4-4 傾聽者介面 import java.awt.*; import java.awt.event.*; class MyWindowClosing extends WindowAdapter { void windowClosing(WindowEvent e){ System.exit(0); } }

  30. 15-5 AWT基本元件

  31. 15-5 AWT基本元件 Label的建構子或方法 15-5-1Label和Button元件

  32. 15-5 AWT基本元件 Button的建構子或方法 15-5-1Label和Button元件

  33. 15-5 AWT基本元件 Checkbox元件的兩種外觀 四方形的為獨立的核選盒,當其它的核選盒狀態改變時並不會影響到該核選盒。 圓形的核選盒(radio button)屬於某個CheckboxGroup。 15-5-2Checkbox元件

  34. 15-5 AWT基本元件 15-5-2Checkbox元件

  35. 15-5 AWT基本元件 TextComponent的常用方法 15-5-3TextField與TextArea元件

  36. 15-5 AWT基本元件 TextField建構子及方法 15-5-3TextField與TextArea元件

  37. 15-5 AWT基本元件 TextArea建構子及方法 15-5-3TextField與TextArea元件

  38. 15-5 AWT基本元件 15-5-4Choice元件

  39. 15-5 AWT基本元件 15-5-5List元件

  40. 15-5 AWT基本元件 Canvas元件:用來顯示繪圖結果的元件。 Canvas元件可以利用getGraphics()方法取得一個Graphics物件,透過Graphics物件的方法就可以畫出幾何圖形或影像。 15-5-6Canvas元件

  41. 15-5 AWT基本元件 捲軸的性質 15-5-7Scrollbar元件

  42. 15-5 AWT基本元件 Scrollbar的建構子 15-5-7Scrollbar元件

  43. 15-5 AWT基本元件 Scrollbar的常用方法

  44. 15-5 AWT基本元件 框架可以加入一個選單列(MenuBar)。 選單列裡可以有數個選單(Menu)。 選單內又可以有數個選項(MenuItem)和核選式選項(ChechboxMenuItem)。 點選選項時,會發生ActionEvent,可以使用ActionListener傾聽;點選核選式選項時,則是發生ItemEvent,可以使用ItemListener傾聽。 15-5-8使用選單

  45. 15-6 版面配置

  46. 15-6 版面配置 配置管理員會依循特別的配置規則,按照容器的大小,動態配置元件的位置,並不會將元件固定在確切的位置上 配置管理員有五種,分別屬於不同的類別:FlowLayout(循序配置)、BorderLayout(邊緣配置)、GridLayout(格式配置)、GridBagLayout(格群配置)和CardLayout(卡式配置)。 巢狀的配置管理搭配Panel使用,可以製作出複雜的版面配置。

  47. 15-6 版面配置 FlowLayout是Panel的預設配置管理員。 預設的FlowLayout會把元件放在中央,當容器的寬度不夠放時,才將後續的元件往下擺放,而且元件間的空白距離垂直和水平方向皆為5個像素。 指定配置管理員給容器時,可以利用Container的setLayout()方法來設定,其參數為LayoutManager物件即可。 15-6-1FlowLayout

  48. 15-6 版面配置 FlowLayout建構子和方法 15-6-1FlowLayout

  49. 15-6 版面配置 BorderLayout會將收納器分成,東、西、南、北、中,五個區域,每個區域只能放入一個元件,所以最多只能放入五個元件。 每個區域也可以放入收納器,是很方便的配置管理員。 加入元件時,第二個參數指定放置元件的區域,如“East”、“West”、“South”、“North”或“Center”。 15-6-2BorderLayout

  50. 15-6 版面配置 “North” 和 “South” 區的元件會和容器同寬,高度為元件的偏好高度。 “East” 和 “West” 區的元件寬度為偏好寬度,高度為容器高減去南北兩區元件的高度。 “Center” 區的元件大小則是減去東西南北四區元件所佔的空間,剩下的部份就是該區元件的大小。 15-6-2BorderLayout • BorderLayout的配置規則:

More Related