SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計
Report
Justin Lin
Follow
Technology / Community Evangelist at Free lancer
Feb. 17, 2013
•
0 likes
•
2,400 views
1
of
63
Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計
Feb. 17, 2013
•
0 likes
•
2,400 views
Download Now
Download to read offline
Report
Technology
Java SE 7 技術手冊
Justin Lin
Follow
Technology / Community Evangelist at Free lancer
Recommended
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Justin Lin
2.2K views
•
80 slides
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Justin Lin
2.1K views
•
66 slides
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Justin Lin
2.8K views
•
84 slides
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Justin Lin
2.5K views
•
78 slides
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Justin Lin
3.2K views
•
91 slides
Java SE 7 技術手冊投影片第 10 章 - 輸入輸出
Justin Lin
2.2K views
•
48 slides
More Related Content
What's hot
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Justin Lin
3.1K views
•
129 slides
Java SE 8 技術手冊第 5 章 - 物件封裝
Justin Lin
3.4K views
•
74 slides
自訂泛型、列舉與標註
Justin Lin
633 views
•
94 slides
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Justin Lin
1.9K views
•
48 slides
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
2.6K views
•
75 slides
Java SE 8 技術手冊第 15 章 - 通用API
Justin Lin
2.2K views
•
82 slides
What's hot
(20)
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Justin Lin
•
3.1K views
Java SE 8 技術手冊第 5 章 - 物件封裝
Justin Lin
•
3.4K views
自訂泛型、列舉與標註
Justin Lin
•
633 views
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Justin Lin
•
1.9K views
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
•
2.6K views
Java SE 8 技術手冊第 15 章 - 通用API
Justin Lin
•
2.2K views
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Justin Lin
•
3.6K views
Java SE 8 技術手冊第 12 章 - Lambda
Justin Lin
•
4.4K views
Java SE 8 技術手冊第 4 章 - 認識物件
Justin Lin
•
4.2K views
5. 建構式、原型與類別
Justin Lin
•
205 views
Java SE 8 技術手冊第 3 章 - 基礎語法
Justin Lin
•
5.3K views
Java SE 8 技術手冊第 6 章 - 繼承與多型
Justin Lin
•
3.5K views
從模組到類別
Justin Lin
•
1.7K views
9. meta-programming
Justin Lin
•
361 views
4. 使用物件
Justin Lin
•
174 views
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Justin Lin
•
2.1K views
Java SE 8 技術手冊第 10 章 - 輸入輸出
Justin Lin
•
2.6K views
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
•
5.3K views
2, object oriented programming
ted-xu
•
290 views
並行與平行
Justin Lin
•
2.6K views
Viewers also liked
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Justin Lin
2.5K views
•
68 slides
Java SE 7 技術手冊投影片第 01 章 - Java平台概論
Justin Lin
5.9K views
•
43 slides
Java SE 7 技術手冊投影片第 08 章 - 例外處理
Justin Lin
2.4K views
•
56 slides
Java SE 8 技術手冊第 1 章 - Java平台概論
Justin Lin
11.6K views
•
44 slides
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Justin Lin
3.6K views
•
66 slides
Java SE 7 技術手冊 - 課後練習解答
Justin Lin
6.6K views
•
65 slides
Viewers also liked
(15)
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Justin Lin
•
2.5K views
Java SE 7 技術手冊投影片第 01 章 - Java平台概論
Justin Lin
•
5.9K views
Java SE 7 技術手冊投影片第 08 章 - 例外處理
Justin Lin
•
2.4K views
Java SE 8 技術手冊第 1 章 - Java平台概論
Justin Lin
•
11.6K views
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Justin Lin
•
3.6K views
Java SE 7 技術手冊 - 課後練習解答
Justin Lin
•
6.6K views
Joda-Time & JSR 310 – Problems, Concepts and Approaches
Justin Lin
•
6.8K views
Java SE 7 技術手冊第七章草稿 - 何謂介面?
Justin Lin
•
3.6K views
Java SE 7 技術手冊第六章草稿 - 何謂繼承?
Justin Lin
•
3.6K views
淺談 Groovy 與 Gradle
Justin Lin
•
8.4K views
Java SE 7 技術手冊第五章草稿 - 何謂封裝?
Justin Lin
•
4.6K views
Java SE 8 技術手冊第 8 章 - 例外處理
Justin Lin
•
3.2K views
Spring 2.0 技術手冊目錄
Justin Lin
•
2.4K views
20110525[Taipei GTUG] titanium mobile簡介
Justin Lee
•
10.4K views
Java SE 8 技術手冊第 9 章 - Collection與Map
Justin Lin
•
4.9K views
Similar to Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計
2011 JavaTwo JSF 2.0
Anthony Chen
898 views
•
41 slides
设计师转型培训-工具篇
Robert Luo
267 views
•
17 slides
Java 1(Java概述)
xzdbd
911 views
•
59 slides
Inspire dgt 網路技術分享_flash actionscritp class
inspire digital
255 views
•
23 slides
07 View Controllers
Tom Fan
549 views
•
74 slides
Interact 操作消費者教學範例
turtleknight
4.1K views
•
81 slides
Similar to Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計
(20)
2011 JavaTwo JSF 2.0
Anthony Chen
•
898 views
设计师转型培训-工具篇
Robert Luo
•
267 views
Java 1(Java概述)
xzdbd
•
911 views
Inspire dgt 網路技術分享_flash actionscritp class
inspire digital
•
255 views
07 View Controllers
Tom Fan
•
549 views
Interact 操作消費者教學範例
turtleknight
•
4.1K views
Java Jdk6学习笔记[Ppt]
yiditushe
•
1.4K views
Java 網路程式
PingLun Liao
•
836 views
Html5移动网站开发实践
Web Zhao
•
9K views
[圣思园][Java SE]Swing
ArBing Xie
•
591 views
08 Notification and Rotation
Tom Fan
•
516 views
2. java introduction
netdbncku
•
1.4K views
為什麼 App 卡卡的
鈺翔 林
•
47 views
钱宝坤:多浏览器集成的JavaScript单元测试工具
taobao.com
•
1.8K views
Struts+Spring+Hibernate整合教程
yiditushe
•
279 views
Struts+Spring+Hibernate整合教程
appollo0312
•
806 views
纵览Loadrunner核心功能
beiyu95
•
617 views
物件導向程式設計課程講義(98 ges hi版)
Hui-Shih Leng
•
2.4K views
Athrun instrument driver
drewz lin
•
524 views
Javascript primer plus
Dongxu Yao
•
1.1K views
More from Justin Lin
Ch14 簡介 Spring Boot
Justin Lin
859 views
•
22 slides
Ch13 整合 Spring MVC/Security
Justin Lin
279 views
•
58 slides
Ch12 Spring 起步走
Justin Lin
261 views
•
31 slides
Ch11 簡介 JavaMail
Justin Lin
155 views
•
8 slides
Ch10 Web 容器安全管理
Justin Lin
152 views
•
30 slides
Ch09 整合資料庫
Justin Lin
229 views
•
92 slides
More from Justin Lin
(20)
Ch14 簡介 Spring Boot
Justin Lin
•
859 views
Ch13 整合 Spring MVC/Security
Justin Lin
•
279 views
Ch12 Spring 起步走
Justin Lin
•
261 views
Ch11 簡介 JavaMail
Justin Lin
•
155 views
Ch10 Web 容器安全管理
Justin Lin
•
152 views
Ch09 整合資料庫
Justin Lin
•
229 views
Ch08 自訂標籤
Justin Lin
•
131 views
Ch07 使用 JSTL
Justin Lin
•
154 views
Ch06 使用 JSP
Justin Lin
•
245 views
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
•
199 views
Ch04 會話管理
Justin Lin
•
235 views
Ch03 請求與回應
Justin Lin
•
228 views
Ch02 撰寫與設定 Servlet
Justin Lin
•
336 views
CH1. 簡介 Web 應用程式
Justin Lin
•
1.1K views
14. 進階主題
Justin Lin
•
400 views
13.並行、平行與非同步
Justin Lin
•
233 views
12. 除錯、測試與效能
Justin Lin
•
148 views
11. 常用內建模組
Justin Lin
•
140 views
10. 資料永續與交換
Justin Lin
•
148 views
9. 資料結構
Justin Lin
•
284 views
Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計
2.
CHAPTER 13 • 視窗程式設計
學習目標 • 瞭解Swing繼承架構 • 使用版面管理員 • 實作事件傾聽器 • 完成文字編輯器綜合練習
3.
簡易需求分析
4.
簡易需求分析
5.
簡易需求分析
6.
簡易需求分析
7.
簡易需求分析 • 檔案的開啟與儲存 • 離開應用程式 •
編輯文字
8.
簡介Swing元件 • AWT(Abstract Window
Toolkit) • JFC(Java Foundation Classes)/Swing
9.
簡介Swing元件
10.
簡介Swing元件
11.
簡介Swing元件
12.
簡介Swing元件 • JFrame是一種Frame,Swing中可獨立顯示 • 通常會繼承JFrame定義視窗類別,然後在建
構實例的過程中,組合視窗中各個元件
13.
設計主視窗與選單列
14.
設計主視窗與選單列
15.
設計主視窗與選單列 • JMenuItem用來建立選單項目,JMenu用來
建立選單
16.
設計主視窗與選單列 • 設置快速鍵可藉由JMenuItem的
setAccelerator()方法來設置 • 要在選單項目間加入分隔線,可以使用 JMenu的addSeparator()方法
21.
設計主視窗與選單列
22.
關於版面管理 • Container中的元件位置跟大小會由版面管
理員(Layout manager)決定 • 有些Container會有預設的版面管理員,你 也可以指定使用其它版面管理員,或是不使 用版面管理員
23.
關於版面管理 • 使用javax.swing.JTextArea類別建立
文字編輯區,然而JTextArea不具備捲軸 • 可以在JTextArea上加上 javax.swing.JScrollPane – JScrollPane會檢驗JTextArea文字內容,在 必要時顯示捲軸,也可以操作捲軸捲動 JTextArea中的文字
24.
關於版面管理 • 結合JTextArea、JScrollPane建立文字
編輯區域的程式片段:
25.
關於版面管理 • JScrollPane採取的版面管理管理員是
ScrollPaneLayout – 預設的配置行為是將JTextArea填滿整個 JScrollPane – 即使沒有指定JTextArea的大小及位置,在稍 後的執行畫面中,也會看到文字區域佔滿視窗的 中央
26.
關於版面管理 • Swing視窗包括了幾個層次 –
RootPane – LayoutPane – ContentPane – MenuBar – GlassPane • 由前至後每個層次都包括且管理下一層次,在最深 層的是RootPane,最上層的是GlassPane
27.
關於版面管理 • 最常接觸的是ContentPane與MenuBar,
它們位於同一個層次 – 在這個層次中如果具有MenuBar,也就是包括選 單列的話,則ContentPane大小為 LayoutPane大小減去MenuBar大小,否則由 ContentPane佔有全部大小
28.
關於版面管理 • 基本上,視窗元件會加入ContentPane中 • 在JFrame中要取得ContentPane,可以使
用getContentPane()方法
29.
關於版面管理 • 在取得ContentPane之後,你可以使用
add()方法將元件加入其中 • ContentPane預設使用BorderLayout
30.
關於版面管理 • BorderLayout在繪製元件位置時,先由北
至南繪製,接著由西至東繪製 • 在不干擾其它位置的情況儘可能填滿位置
31.
關於版面管理 • 顯示文字可以使用javax.swing.JLabel
32.
關於版面管理
33.
關於版面管理
34.
事件處理 • 視窗上發生任何事情(鍵盤操作、滑鼠點選、
大小改變等),都會產生事件(Event) • 若對某些事件有興趣,可以對元件註冊傾聽 器(Listener) • 每個視窗程式都會有個事件佇列(Event queue),若有事件發生都會被排入這個佇列, 視窗程式會使用一條執行緒來處理佇列中的 事件、呼叫已註冊傾聽器中的方法
35.
事件處理 • 可以回顧一下7.2.2的內容,其中對
ClientQueue實作的事件處理機制,就是 事件註冊、呼叫的基本原理
36.
事件處理 • 事件傾聽器都實作了
java.util.EventListener這個標示介 面(Marker interface) • 不同事件的傾聽器介面會繼承 EventListener定義不同的行為 • 對於視窗程式而言,相對應的事件傾聽器主 要位於java.awt.event與 javax.swing.event套件
37.
事件處理 • 以選單項目按下時的事件處理為例,必須實
作java.awt.event.ActionListener
38.
事件處理 • 鍵盤操作會發生KeyEvent事件,可以實作
java.awt.event.KeyListener:
39.
事件處理 • java.awt.event.KeyAdapter類別實作
了KeyListener介面,藉由繼承 KeyAdapter,可只重新定義感興趣的方法
40.
事件處理 • 滑鼠事件傾聽器是實作
java.awt.event.MouseListener介面 • java.awt.event.MouseAdapter實作了 MouseListener介面,可以在繼承之後, 對感興趣的方法重新定義
41.
事件處理
42.
事件處理 • 程式片段中的popUpMenu參考至
javax.swing.JPopupMenu實例,可從 JMenu取得
43.
事件處理 • 按下視窗右上角X按鈕時,希望動作與按下
選單中「關閉」具有相同行為 … • 改為自行實作 java.awt.event.WindowListener,可 繼承java.awt.event.WindowAdapter
44.
事件處理
50.
事件處理
51.
實作開啟檔案 • 利用介面隔離圖形介面設計與實際商務邏輯
52.
實作開啟檔案 • 建立JNotePad實例時,必須指定TextDAO
實作物件
53.
實作開啟檔案 • 檢查檔案是否儲存、開啟文件、儲存檔案等
流程可以先定義為方法,待會再來實作
54.
實作開啟檔案 • 使用javax.swing.JFileChooser來顯示
檔案選取對話方塊…
56.
實作開啟檔案
57.
實作儲存、關閉檔案
58.
實作儲存、關閉檔案
59.
實作儲存、關閉檔案
61.
實作儲存、關閉檔案 • 建構JNotePad時指定FileTextDAO實例
62.
文字區編輯、剪下、複製、貼上
63.
文字區編輯、剪下、複製、貼上