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 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 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 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 ượ ư
button, label v.v… có th đ c nhìn th y trên màn hình. B t kỳ cái 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 abstract windowing toolkit- b công c ch a các l p đ t o c a s .ế
AWT m t b các l p trong Java cho phép chúng ta t o GUI 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 lôi cu n ng i s d ng. Các thành ph n này này 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 k th a t l p Container s v t ch a. Applet 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 th ch a nhi u ph n t , các ph n t này th đ c v hay đ c ượ ượ
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 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 vùng n m trong c a s khác. Panel không 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 ch a cácượ
đ ng biên xung quanh.ườ
2. Frame:
Frame không ph thu c vào applet trình duy t. Frame th ho t đ ng nh m t ư
v t ch a hay nh m t thành ph n (component). B n 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 m t l p con c a l p Frame. L p FrameDemo này ượ
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(). s g i ph ng th c kh i t o c a l p cha (trong tr ng h p này Frame). ươ ườ
M c đích c a super() g i ph ng th c kh i t o c a l p cha. 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 y ta c n t o m t frame m i thêm Panel m i đ c t oy vào đó. Tuy ượ
nhiên, frame s không nhìn th y đ c, không 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 y ta c n t o m t frame m i thêm Panel m i đ c t oy vào đó. Tuy ượ
nhiên, frame s không nhìn th y đ c, không 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 Dialog 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 th đ c đ t trên giao di n ng i dùng, th đ c thay đ i kích ượ ườ ượ
th c hay làm cho nhìn th y, n. d đ c dùng ph bi n nh t Textfield, Label,ướ ượ ế
Checkbox, Textarea 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