SlideShare a Scribd company logo
Java GUI & Puzzlers
Agenda
●
Java Puzzler
●
Graphical User Interface
–
Abstract Windowing Toolkit (AWT)
–
Swing
–
Event Listener
●
Tools
Java Puzzlers-Expressive
●
Change.java
●
CleverSwap.java
●
DosEquis.java
●
Elementary.java
●
JoyOfHex.java
●
LongDivision.java
●
Multicast.java
●
Oddity.java
●
Tweedledee.java
●
Tweedledum.java
Model View Controller
●
Model 代表模型 ( 資料 )
●
View 代表視圖
●
Controller 代表控制器
Model View Controller
Model View Controller
Controller
changes
model or view
get data
from model
update view
when data changes
View
Model
Model View Controller
gui.ppt
change notification
request & modificationviews
model
Hello GUI
●
Hello AWT
●
Hello Swing
Deep into Hello AWT
●
To create simple awt example, you need a
frame. There are two ways to create a
frame in AWT.
–
By extending Frame class (inheritance)
–
By creating the object of Frame class
(association)
●
Java AWT Hierarchy
Event and Listener
●
HelloAWT couldn't be closed ?!
●
We can put the event handling code into
one of the following places:
–
Same class (AEvent.java)
–
Other class (AEvent2.java)
–
Anonymous class (AEvent3.java)
●
Hierarchy of Java Swing classes
JFrame
●
There are two ways to create a frame:
–
By creating the object of Frame class
(association)
–
By extending Frame class (inheritance)
●
Example:
–
FirstSwingExample.java
–
Simple.java
–
Simple2.java
AWT 視窗工具類別
●
AWT ( Abstract Window Tookit )是 Java 語言
的視窗工具類別,這個工具箱包含許多與平台無
關任何平台均可以使用的視窗、繪圖和使用者介
面等相關元件( Component ),存放在 java.awt
程式套件中。
Component 的子類別
●
Button ‘ 按鈕
●
Canvas ‘ 畫布
●
Checkbox ‘ 核取方塊
●
Choice ‘ 下拉式選單
●
Container ‘ 用來放置其他元件的容器
●
Label ‘ 標籤
●
List‘ 清單方塊
●
Scrollbar ‘ 捲軸
●
TextComponent ‘ 文字元件
套件 (package)
●
引用視窗元件時,在 Java 程式的開頭,要使用 i
mport 命令將這些程式匯入, Code 如下:
–
import java.awt.component;
–
import java.awt.container;
–
import java.awt.window;
–
import java.awt.frame;
●
也可以使用“ *” 符號,匯入所有程式, Code 如
下:
–
import java.awt.*;
Swing
●
Swing 程式套件是完全使用 Java 語言撰寫的 AW
T 圖形視窗套件,加強了跨平台的能力,相關元
件存放在 javax.swing 程式套件中。
●
為了與 AWT 的元件有所區別, Swing 元件均以
大寫 J 為開頭(例如 JButton )。
●
Swing 中的程式元件大多繼承自 JComponent 。
Container
●
容器( Container )是指具有包含其他元件功能
的元件,這些元件是以 Container 為基礎類別的
子類別,例如 JFrame 、 Window 、 JPanel 等
等。
●
應用容器( Container )來存放元件是視窗介面
程式的特性,我們必須將基本元件(例如: JLab
el 、 JButton 等)放入容器,才能顯示在視窗
中。
Layout
●
FlowLayout ‘ 流動式版面配置
●
BorderLayout ‘ 邊界式版面配置
●
GridLayout ‘ 方格式版面配置
●
CardLayout ‘ 多層式版面配置
●
GridBagLayout ‘ 進階方格式版面配置
●
BoxLayout ‘ 盒子式版面配置
FlowLayout
●
FlowLayout (流動式版面配置)是最簡單的版面配置技
巧,元件會由左至右,由上而下依序放到視窗容器中(例
如: JFrame 的 ContentPane )。
BorderLayout
●
BorderLayout (邊界式版面配置)將視窗分為東( EAS
T )、西( WEST )、南( SOUTH )、北( NORT
H )、中( CENTER )五個區域。
●
將元件加入視窗容器時,可以指定邊界的位置,若沒有指
定位置,預設值為中間而將元件加入到已經被佔用的位置
時,將會取代原先的元件。
GridLayout
●
GridLayout (方格式版面配置)可以將視窗等分為格子
狀,例如 GridLayout(2,3) 表示將視窗分割為水平方向兩
欄,垂直方向 3 列(總共六格)。
●
若輸入四個參數,例如 GridLayout(4,5,10,10) ,後面兩
個參數則代表水平間距( Hgap )和垂直間距( Vga
p )。
●
當沒有輸入任何參數時,則表示只有一列,將所有元件放
在第一列中。
CardLayout
GridBagLayout
BoxLayout
●
BoxLayout (盒子式版面配置)可以將元件放入
一列或一行中(當一列填滿時不會移到下一
列)。
●
使用已經內建了 BoxLayout 配置方式的 Box 類
別,這個類別除了較容易使用外,彈性也較大。
Example-Calculator
Tools
●
Netbean
●
Eclipse
References
●
www.javatpoint.com
●
Contact
●
E-mail: pinglunliao [at] gmail [dot] com
●
LINE: Holan.Liao

More Related Content

PPT
Win32 api看視窗運作
PDF
深入探討 C 語言
ODP
Win32 視窗程式設計基礎
ODP
Git 程式碼版本控制軟體介紹
PDF
給沒有程式設計經驗的人
PDF
陣列與指標
PPT
Perl For Bioinformatics
Win32 api看視窗運作
深入探討 C 語言
Win32 視窗程式設計基礎
Git 程式碼版本控制軟體介紹
給沒有程式設計經驗的人
陣列與指標
Perl For Bioinformatics

More from PingLun Liao (17)

ODP
C++ STL 概觀
ODP
C++ Function
ODP
C 檔案輸入與輸出
ODP
Matlab 在機率與統計的應用
ODP
Android 2D 遊戲設計基礎
ODP
Android 介面設計
ODP
Java 網路程式
ODP
Android introduction
ODP
RESTful
ODP
Web service
ODP
How toprogram
ODP
Generic Programming
ODP
Object-Oriented Programming
ODP
Object-Based Programming Part II
ODP
Object-Based Programming Part One
PDF
Git server account management
PDF
Androidx86 Installation For Virtualbox
C++ STL 概觀
C++ Function
C 檔案輸入與輸出
Matlab 在機率與統計的應用
Android 2D 遊戲設計基礎
Android 介面設計
Java 網路程式
Android introduction
RESTful
Web service
How toprogram
Generic Programming
Object-Oriented Programming
Object-Based Programming Part II
Object-Based Programming Part One
Git server account management
Androidx86 Installation For Virtualbox
Ad

Java 視窗程式設計