
TÌM HI U AWTỂ
I Gi i thi u:ớ ệ
•Các ngôn ng l p trình hi n nay cung c p các đ i t ng đ h a, chúng có thữ ậ ệ ấ ố ượ ồ ọ ể
đ c đi u khi n b i ng i l p trình, hay b i ng i s d ng. M t trong s nh ngượ ề ể ở ườ ậ ở ườ ử ụ ộ ố ữ
k t qu quan tr ng nh t chính là các ngôn ng hi n nay đ c d a trên Giaoế ả ọ ấ ữ ệ ượ ự
di n ng i dùng đ h a (Graphical User Interface - GUI). ệ ườ ồ ọ
•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: C#, VB, VC++ l p trình viên ph iỗ ữ ỗ ợ ạ ậ ả
ph thu c vào công c , trong khi java, Python, Flex thì vi c vi t l i code l i c cụ ộ ụ ệ ế ạ ạ ự
kì đ n gi n r t ít khi c n s d ng công c kéo th .ơ ả ấ ầ ử ụ ụ ả
M t ph n t (element) GUI đ c thi t l p b ng cách s d ng th t c sau:ộ ầ ử ượ ế ậ ằ ử ụ ủ ụ
•T o đ i t ngạ ố ượ
•Xác đ nh s xu t hi n ban đ u c a đ i t ng ị ự ấ ệ ầ ủ ố ượ
•Ch ra nó n m đâuỉ ằ ở
•Thêm ph n t vào giao di n trên màn hìnhầ ử ệ
•
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 v.v… có th đ c nhìn th y trên màn hình. B t kỳ cái gì chung cho t t cể ượ ấ ấ ấ ả
các thành ph n GUI đ u đ c tìm th y trong l p Component. Đ t o các đ i t ngầ ề ượ ấ ớ ể ạ ố ượ
GUI chúng ta c n nh p gói ầ ậ java.awt.
AWT vi t t t là abstract windowing toolkit- b công c ch a các l p đ t o c a s .ế ắ ộ ụ ứ ớ ể ạ ử ổ
AWT là m t b các l p trong Java cho phép chúng ta t o 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 cung c p các thành ph n khácệ ủ ườ ộ ấ ầ
nhau đ t o GUI hi u qu và lôi cu n ng i s d ng. Các thành ph n này này có thể ạ ệ ả ố ườ ử ụ ầ ể
là:
•V t ch a (ậ ứ Container)
•Thành ph n (ầ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)
C u trúc gói AWT:ấ
II. S d ng các l p c a AWT:ử ụ ớ ủ
1. Container (v t ch a):ậ ứ
Container là vùng mà b n có th đ t các thành ph n giao di n c a b n vào đó. B t cạ ể ặ ầ ệ ủ ạ ấ ứ
v t gì mà k th a t l p Container s là v t ch a. Applet là m t v t ch a, applet đ cậ ế ừ ừ ớ ẽ ậ ứ ộ ậ ứ ượ
d n xu t t Panel, l p Panel l i đ c d n xu t t l p Container.ẫ ấ ừ ớ ạ ượ ẫ ấ ừ ớ

M t v t ch a có th ch a nhi u ph n t , các ph n t này có th đ c v hay đ c tôộ ậ ứ ể ứ ề ầ ử ầ ử ể ượ ẽ ượ
màu tuỳ thích. B n hãy xem v t ch a nh m t c a s . Nh khung (frame), pane, latch,ạ ậ ứ ư ộ ử ổ ư
hook, và các thành ph n có kích th c nh h n khác.ầ ướ ỏ ơ
Gói java.awt ch a m t l p g i là Container. L p này tr c ti p hay gián ti p phái sinh raứ ộ ớ ọ ớ ự ế ế
hai v t ch a đ c s d ng ph bi n nh t là Frame và Panel.ậ ứ ượ ử ụ ổ ế ấ
Frame và Panel là các v t ch a th ng đ c s d ng. Frame là c a s đ c l p nh ngậ ứ ườ ượ ử ụ ử ổ ộ ậ ư
ng c l i Panel là vùng n m trong c a s khác. Panel không có các đ ng biên,ượ ạ ằ ử ổ ườ
chúng đ c trình bày trong m t c a s do trình duy t hay appletviewer cung c p.ượ ộ ử ổ ệ ấ
Appletviewer là m t công c đ c JDK h tr đ xem các applet. Frame là l p con c aộ ụ ượ ỗ ợ ể ớ ủ
Window. Chúng đ c trình bày trong m t c a s đ c l p, c a s này có ch a cácượ ộ ử ổ ộ ậ ử ổ ứ
đ ng biên xung quanh.ườ
2. Frame:
Frame không ph thu c vào applet và trình duy t. Frame có th ho t đ ng nh m tụ ộ ệ ể ạ ộ ư ộ
v t ch a hay nh m t thành ph n (component). B n có th s d ng m t trong nh ngậ ứ ư ộ ầ ạ ể ử ụ ộ ữ
constructor sau đ t o m t frame:ể ạ ộ
•Frame(): T o m t frame nh ng không hi n th (invisible)ạ ộ ư ể ị
•Frame(String title): T o m t frame không hi n th , có tiêu đ .ạ ộ ể ị ề
Đây là ch ng trình minh ho cách t o m t Frame.ươ ạ ạ ộ
import java.awt.*;
class FrameDemo extends Frame
{
public FrameDemo(String title)
{
super(title);
}
public static void main(String args[])
{
FrameDemo f=new FrameDemo(“I have been Frameed!!!”);
f.setSize(300,200);
f.setVisible(true);
}
}
L p đ c đ nh nghĩa Framedemo là m t l p con c a l p Frame. L p FrameDemo nàyớ ượ ị ộ ớ ủ ớ ớ
có m t ph ng th c kh i t o, trong ph ng th c kh i t o này ta cho g i ph ng th cộ ươ ứ ở ạ ươ ứ ở ạ ọ ươ ứ
super(). Nó s g i ph ng th c kh i t o c a l p cha (trong tr ng h p này là Frame).ẽ ọ ươ ứ ở ạ ủ ớ ườ ợ
M c đích c a super() là g i ph ng th c kh i t o c a l p cha. Nó s t o m t đ iụ ủ ọ ươ ứ ở ạ ủ ớ ẽ ạ ộ ố
t ng c a l p con, l p con này s t o Frame. Tuy nhiên, Frame v n không nhìn th yượ ủ ớ ớ ẽ ạ ẫ ấ
đ c và không có kích th c. Đ làm đ c đi u này, ta s d ng hai ph ng th c n mượ ướ ể ượ ề ử ụ ươ ứ ằ
trong ph ng th c main: setSize() và setVisible().ươ ứ

K t qu c a ch ng trình.ế ả ủ ươ
3. Panel:
Panel đ c s d ng đ nhóm m t s các thành ph n l i v i nhau. Cách đ n gi n nh tượ ử ụ ể ộ ố ầ ạ ớ ơ ả ấ
đ t o m t panel là s d ng ph ng th c kh i t o c a nó, hàm Panel().ể ạ ộ ử ụ ươ ứ ở ạ ủ
Đây là ch ng trình ch ra cách t o m t panel:ươ ỉ ạ ộ
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()
{
}
}
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 đó. 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 trong ph ng th c main – setSize() và setVisible() đ thi t l p kích th cươ ứ ươ ứ ể ế ậ ướ
và hi n th frame.ể ị
K t xu t c a ch ng trình:ế ấ ủ ươ

4. Panel:
Panel đ c s d ng đ nhóm m t s các thành ph n l i v i nhau. Cách đ n gi n nh tượ ử ụ ể ộ ố ầ ạ ớ ơ ả ấ
đ t o m t panel là s d ng ph ng th c kh i t o c a nó, hàm Panel().ể ạ ộ ử ụ ươ ứ ở ạ ủ
Đây là ch ng trình ch ra cách t o m t panel:ươ ỉ ạ ộ
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()
{
}
}
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 đó. 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 trong ph ng th c main – setSize() và setVisible() đ thi t l p kích th cươ ứ ươ ứ ể ế ậ ướ
và hi n th frame.ể ị
K t xu t c a ch ng trình:ế ấ ủ ươ

5. Dialog
L p ‘Dialog’ t ng t nh l p Frame, nghĩa là Dialog là l p con c a l p Window. Đ iớ ươ ự ư ớ ớ ủ ớ ố
t ng dialog đ c t o nh sau:ượ ượ ạ ư
Frame myframe=new Frame(“My frame”); // calling frame
String title = “Title”;
boolean modal = true; // whether modal or not
Dialog dlg=new Dialog(myframe, title, modal);
Tham s ‘modal’ ch ra r ng dialog s ngăn ch n b t kỳ t ng tác nào x y đ n v i cácố ỉ ằ ẽ ặ ấ ươ ả ế ớ
c a s đ c m khác, trong khi dialog đang đ c hi n th trên màn hình. Ki u h pử ổ ượ ở ượ ể ị ể ộ
tho i này ngăn ch n ng i dùng t ng tác v i các c a s khác (c a cùng ng d ng)ạ ặ ườ ươ ớ ử ổ ủ ứ ụ
trên màn hình, cho t i khi dialog đ c đóng l i.ớ ượ ạ
6. Thành ph n (Component):ầ
M t component có th đ c đ t trên giao di n ng i dùng, có th đ c thay đ i kíchộ ể ượ ặ ệ ườ ể ượ ổ
th c hay làm cho nhìn th y, n. Ví d đ c dùng ph bi n nh t là Textfield, Label,ướ ấ ẩ ụ ượ ổ ế ấ
Checkbox, Textarea v.v… Và các thành ph n cao c p khác nh Scrollbar, Scrollpaneầ ấ ư
và Dialog. Tuy nhiên chúng không đ c s d ng th ng xuyên.ượ ử ụ ườ
Các l p thành ph n:ớ ầ
M t s thành ph n th ng đ c s d ng:ộ ố ầ ườ ượ ử ụ
6.1 Nhãn (Label):
L p này đ c s d ng đ trình bày m t String. Nó không th đ c s a đ i. Đây là m tớ ượ ử ụ ể ộ ể ượ ử ổ ộ
chu i ch đ c. S d ng m t trong nh ng constructor sau đây đ t o m t label:ỗ ỉ ọ ử ụ ộ ữ ể ạ ộ
•Label() T o m t Label tr ng.ạ ộ ố
•Label(String labeltext) T o m t Label v i n i dung đ c cho.ạ ộ ớ ộ ượ
•Label(String labeltext, int alignment) T o m t Label v i m t ch đ canh lạ ộ ớ ộ ế ộ ề
(alignment) , canh l có th là Label.LEFT, Label.RIGHT hay Label.CENTER.ề ể
Các ph ng th c đ c s d ng ph bi n c a label đ c trình bày b ng bên d i:ươ ứ ượ ử ụ ổ ế ủ ượ ở ả ướ
Ph ng th cươ ứ Ch c năng ứ
setFont(Font
f)
Thay đ i phông chổ ữ
c a Labelủ
setText(String
s)
Thi t l p nhãn choế ậ
Label

