Chương 6: L p trình GUI
GVLT: Tr n Anh Dũng
1
N i dung
GUI là gì?
Gi i thi u thi t k GUI trong java
ð i tư ng khung ch a (Container)
Các thành ph n cơ b n (Component)
B qu n lý trình bày (Layout Manager)
Ví d minh h a
2
Gi i thi u (1)
GUI: Graphic User Interface – mô hình giao ti p ki u
tương tác gi a ng d ng và user d ng ñ h a.
M i ngôn ng h tr cách t o GUI khác nhau:
VB, VC++ dùng d ng drag and drop
C++ địi h i programmer vi t tồn b
GUI.
code đ
t o
Java h tr s n các l p t o GUI cho Programmer s
d ng.
H u h t các ngơn ng l p trình hi n nay ñư c cung c p
các ñ i tư ng ñ h a.
3
Gi i thi u (2)
GUI = Container + Components
Container
Components
4
Gi i thi u (3)
M t thành ph n (component) GUI là m t ñ i tư ng tr c
quan. Ngư i dùng tương tác v i ñ i tư ng này thơng
qua con tr chu t hay bàn phím.
Các thành ph n như là button, label… có th đư c
nhìn th y trên màn hình.
B t kỳ thao tác nào áp d ng ñ n t t c các thành
ph n GUI đ u đư c tìm th y trong l p ñ i tư ng
Component.
ð t o các thành ph n GUI, s
trong gói java.awt
d ng các l p t n t i
5
Gi i thi u v AWT (1)
AWT: Abstract Windowing Toolkit
AWT là m t b các l p trong Java cho phép chúng ta
t o m t GUI và ch p nh n các nh p li u c a ngư i dùng
thơng qua bàn phím và chu t.
AWT là thư vi n n n t ng, cơ s giúp cho chúng ta ti p
c n v i thư vi n m r ng JFC hi u qu hơn.
S d ng:
-
import java.awt.*;
-
import java.awt.event.*;
6
Gi i thi u v AWT (2)
AWT cung c p các item khác nhau ñ t o m t GUI hi u
qu và lôi cu n ngư i s d ng. Các item này có th là:
Container
Component
Trình qu n lý cách trình bày (Layout manager)
ð h a (Graphic) và các tính năng v (draw)
Phơng ch (Font)
S ki n (Event)
7
C u trúc gói AWT
AWTEvent
Font
FontMetrics
Object
Color
Graphics
Component
Container
Panel
Applet
Button
Window
Frame
Label
TextField
Dialog
FileDialog
TextComponent
List
TextArea
Choice
CheckBox
LayoutManager
CheckBoxGroup
Canvas
MenuComponent
Scrollbar
MenuItem
Menu
MenuBar
8
Tham kh o gói awt
9
Container (1)
Container là ñ i tư ng v t ch a hay nh ng đ i tư ng có
kh năng qu n lý và nhóm các đ i tư ng khác l i.
Nh ng ñ i tư ng con thu c thành ph n awt như:
button, checkbox, radio button, scrollbar, list,… ch s
d ng đư c khi ta đưa nó vào khung ch a (container).
Gói java.awt ch a m t l p có tên là Container. L p này
tr c ti p hay gián ti p phát sinh ra hai container ñư c s
d ng ph bi n nh t là Frame và Panel.
10
Container (2)
11
Frame (1)
Khung ch a Frame là m t c a s window
Là l p con c a window
Bao g m m t tiêu ñ và m t ñư ng biên (border) như
các ng d ng windows thông thư ng khác.
Thư ng ñư c s
ng d ng.
d ng ñ t o c a s chính c a các
12
Frame (2)
Frame có th ho t đ ng như m t container hay như m t
thành ph n (component).
Chúng ta có th s d ng m t trong nh ng constructor
sau ñ t o m t frame:
Frame()
Frame(String title)
…
Các phương th c: Tìm hi u java docs
13
Frame – Ví d
import java.awt.*;
class FrameDemo extends Frame{
public FrameDemo(String title){
super (title);
}
public static void main (String args[]) {
FrameDemo ObjFr =
new FrameDemo("I have been Framed!!!");
ObjFr.setSize(500,500);
ObjFr.setVisible(true);
}
}
14
Panel (1)
ð i tư ng khung ch a ñơn gi n nh t, dùng đ nhóm
các đ i tư ng, thành ph n con l i. M t Panel có th
ch a bên trong m t Panel khác.
M t panel khơng có s n vì th chúng ta c n ph i thêm
nó vào Frame.
Hàm kh i t o
Panel ( )
Panel (LayoutManager)
15
Panel (2)
Panel khơng th đư c nhìn th y tr c ti p.
Do đó, chúng ta c n thêm panel ñ n m t frame.
Vì v y ta c n t o m t frame m i và thêm Panel m i
đư c t o này vào nó.
Tuy nhiên, frame s khơng nhìn th y đư c, và khơng có
kích thư c. Chúng ta s d ng hai phương th c
setSize() và setVisible() đ thi t l p kích thư c và hi n
th frame.
16
Panel – Ví d
import java.awt.*;
class Paneltest extends Panel{
public static void main(String args[])
{
Paneltest p = new Paneltest();
Frame f = new Frame(“Testing a Panel”);
f.add(p);
f.setSize(300,200);
f.setVisible(true);
}
public Paneltest()
{
}
}
17
Panel – Ví d (tt)
Panel(BorderLayout)
java.awt.Panel
Ví d microwave GUI
TextField
Button
12 Button
Panel(GridLayout)
Frame(BorderLayout)
18
Dialog (1)
Là m t c a s d ng h p h i tho i, c a s d ng này
thư ng đư c dùng đ đưa ra thơng báo, hay dùng ñ
l y d li u nh p t ngồi vào thơng qua các đ i tư ng,
thành ph n trên dialog như TextField ch ng h n.
Dialog cũng là m t c a s nhưng khơng đ y ñ
năng như ñ i tư ng khung ch a Frame.
ch c
19
Dialog (2)
Là m t l p con c a l p Window
Tham kh o chi ti t các constructor và các phương th c
trong java docs.
Frame myframe = new Frame(“My frame”);
String title = “Title”;
boolean modal = true;
Dialog dlg = new Dialog(myframe, title, modal);
20
ScrollPanes
Là m t khung ch a tương t khung ch a Panel, nhưng
có thêm 2 thanh trư t giúp ta t ch c và xem ñư c các
ñ i tư ng l n chi m nhi u ch trên màn hình như
nh ng hình nh hay văn b n nhi u dòng.
21
Nguyên t c xây d ng GUI
L a ch n 1 container: Frame, Dialog,…
T o các ñi u khi n: label, button, text areas…
ðưa các ñi u khi n vào vùng ch a
S p x p các ñi u khi n (layout)
Thêm các x lý s ki n (Listeners)
S ñư c gi i thi u trong chương sau
22
Thành ph n - Components
T t c các thành ph n c u t o nên chương trình GUI
đư c g i là component.
Ví d :
Containers,
TextFields, Labels, CheckBoxes, TextAreas
Scrollbars, scrollpanes, dialog
23
Thành ph n - Components
Button
Label
Choice
TextField
Checkbox
Scrollbar
List
TextArea
Button
Checkbox
CheckboxGroup
24
Label (1)
Dùng ñ hi n th chu i
Constructors:
Label();
Label(String);
Label(String, int alignment);
Các phương th c ph bi n:
setFont(Font f);
setText(String);
getText();
…
25