of 46 /46
Lập trình giao diện trên Java – Phần 1 Frame là một đối tượng có thể dùng một cách độc lập, h vào một đối tượng khác như một đối tượng conpon Thông thường, Frame được dùng như một cửa sổ của một chư độc lập. 1/- Giao diện với các đối tượng cơ bản 1.1/- Các đối tượng container cơ bản Các đối tượng container được dùng để chứa các đối tượng thành phần này có một số phương thức chung như sau: add(Object): Thêm một đối tượng (kiểu component) v ào container. remove(Object): Loại bỏ một đối tượng ra khỏi container. removeAll(): Loại bỏ tất cả các đối tượng mà container đang chứa. getComponent(int): Trả về đối tượng thành phần có chỉ số là tham số đầu quản lí các đối tượng chứa trong nó dưới dạng mảng. Chỉ số của các thành phần l thành phần đó được thêm vào container. getComponents(): Trả về mảng tất cả các đối tượng mà container đang chứ countComponents(): Trả về số lượng các đối tượng mà container đang chứ a. Frame Frame là một đối tượng có thể dùng một cách độc lập, hoặc được gắn như một đối tượng conponent bình thường. Thông thường, Frame được dùn một chương trình độc lập. Các phương thức cơ bản của lớp Frame: Frame(): Khởi tạo không tham số. Frame(String): Khởi tạo với tham số là dòng tiêu đề của frame. setSize(int, int): Định kích cỡ của frame, tham số tương ứng là chiều rộng frame. setVisible(boolean): Cho phép frame xuất hiện hay ẩn đi trên màn hình.

Lập trình giao diện trên Java

Embed Size (px)

Citation preview

Lp trnh giao din trn Java Phn 1Frame l mt i tng c th dng mt cch c lp, hoc c gn vo mt i tng khc nh mt i tng conponent bnh thng. Thng thng, Frame c dng nh mt ca s ca mt chng trnh c lp.

1/- Giao din vi cc i tng c bn1.1/- Cc i tng container c bn Cc i tng container c dng cha cc i tng thnh phn khc. Cc lp i tng ny c mt s phng thc chung nh sau: add(Object): Thm mt i tng (kiu component) vo container. remove(Object): Loi b mt i tng ra khi container. removeAll(): Loi b tt c cc i tng m container ang cha. getComponent(int): Tr v i tng thnh phn c ch s l tham s u vo. Container qun l cc i tng cha trong n di dng mng. Ch s ca cc thnh phn l s th t khi thnh phn c thm vo container. getComponents(): Tr v mng tt c cc i tng m container ang cha. countComponents(): Tr v s lng cc i tng m container ang cha. Frame Frame l mt i tng c th dng mt cch c lp, hoc c gn vo mt i tng khc nh mt i tng conponent bnh thng. Thng thng, Frame c dng nh mt ca s ca mt chng trnh c lp. Cc phng thc c bn ca lp Frame: Frame(): Khi to khng tham s. Frame(String): Khi to vi tham s l dng tiu ca frame. setSize(int, int): nh kch c ca frame, tham s tng ng l chiu rng v chiu cao ca frame. setVisible(boolean): Cho php frame xut hin hay n i trn mn hnh.

setTitle(String)/getTitle(): Truy nhp thuc tnh dng tiu ca frame. setResizable(boolean): Thit lp thuc tnh cho php thay i kch c frame. setIconImage(Image): Thit lp nh icon gc trn (biu tng) ca frame. Chng trnh 6.1 minh ho vic s dng mt i tng ca lp Frame. Chng trnh 6.1

Hnh 6.1: Kt qu demo Frame. Panel Panel cng l mt dang khung cha, nhng kh n gin. Panel ch dng nhm cc i tng giao din vi nhau. Thng thng, panel c dng trong mt ca s ca Frame hoc mt ng dng khc. Cc phng thc c bn ca lp Panel, ngoi cc phng thc chung ca container: Panel(): Khi to khng tham s. Chng trnh 6.2 minh ho vic s dng mt Panel trong mt Frame. Chng trnh 6.2

Hnh 6.2: Kt qu demo Panel. Dialog Dialog l mt i tng ca s con ca mt ca s chng trnh chnh. Do vy, Dialog ch c s dng km vi mt Frame. C hai dng Dialog: Modal: Khi hin ca s dialog, cc ca s khc ca chng trnh s b kho li, khng thao tc c, ch thao tc c trn ca s dialog. Non-modal: Khng kho cc ca s khc. Khi dialog xut hin, ngi dng vn c th chuyn sang thao tc trn cc ca s khc, nu cn. Cc phng thc c bn ca lp Dialog: Dialog(Frame, boolean): Khi to dialog, tham s th nht l frame cha dialog, tham s th hai xc nh dialog c l modal hay khng. Dialog(Frame, String, boolean): Khi to dialog, thm tham s th hai l dng tiu ca dialog. setVisible(boolean): Thit lp trng thi hin th hoc n dialog trn mn hnh. setSize(int, int): nh kch c cho dialog, cc tham s tng ng l chiu rng v chiu cao ca dialog. setTitle(String)/getTitle(): Truy nhp thuc tnh dng tiu ca dialog.

setResizable(boolean): Thit lp thuc tnh cho php thay i kch c ca dialog. setLayout(Layout): Thit lp ch hin th cc i tng cha trong dialog. Chng trnh 6.3 minh ho vic thm mt dialog (ang rng, cha c i tng thnh phn no) vo mt frame. Chng trnh 6.3

Hnh 6.3: Kt qu demo Dialog. 1.2/- Cc i tng component c bn Cc i tng component c dng lm thnh phn ca cc i tng khung cha, chng khng th dng c lp, m lun phi gn vo trong mt i tng khung cha container. Label Label (nhn) l mt i tng hin th vn bn tnh, nhng vn bn m ngi dng khng th thay i trc tip c. Cc phng thc c bn ca Label: Label(): Khi to mt nhn rng. Label(String): Khi to mt nhn vi ni dung vn bn l tham s u vo. Label(String, int): Khi to mt nhn c ni dung sn, tham s th hai xc nh cch cn l ca nhn so vi khung cha, bao gm {Label.CENTER, Label.LEFT, Label.RIGHT}.

setText(String)/getText(): Truy nhp ni dung vn bn ca nhn. setAlignment(int)/getAlignment(): Truy nhp thuc tnh cn l ca nhn. setFont(Font): nh dng phng ch ca nhn. Chng trnh 6.4 minh ho vic s dng nhn trong mt frame. Chng trnh 6.4

Hnh 6.4: Kt qu demo Label.

Home

>> Lp Trnh >> Java >>

?n Linh v? c ho?c Ch? d?

Lp trnh giao din trn Java Phn 2TextField v TextArea hai i tng dng biu din vn bn v ngi dng c th thay i ni dung vn bn cha trong chng. im khc bit l TextField ch cho php mt dng vn bn, trong khi TextArea cho php cha nhiu dng vn bn.

TextField v TextArea Cc phng thc chung ca hai lp ny: setText(String)/getText(): Truy nhp thuc tnh ni dung vn bn cha trong . getSelectedText(): Tr v chui vn bn c bi en (nh du chn) trong . getSelectedStart(): Tr v v tr k t u trong vng c nh du chn (tnh t 0). getSelectedEnd(): Tr v v tr k t cui trong vng c nh du chn (tnh t 0). selectAll(): nh du chn ton vn bn. setEditable(boolean): Xc nh vng vn bn c th edit c hay khng. Cc phng thc khc ca lp TextField: TextField(): Khi to mt vn bn rng. TextField(int): Khi to mt vn bn rng, rng xc nh bi tham s vo. TextField(String): Khi to mt vn bn c ni dung xc nh bi tham s u vo. TextField(String, int): Khi to vi ni dung c sn, rng xc nh. setEchoChar(char)/getEchoChar(): Truy nhp thuc tnh l k t thay th vn bn trong . Thuc tnh ny c dng khi ta cn che du thng tin vn bn, v d, g mt khu ca chng trnh. getColums(): Tr v rng ca vn bn. Cc phng thc khc ca lp TextArea: TextArea(): Khi to mt vng vn bn rng. TextArea(int, int): Khi to mt vng vn bn rng, kch c (s dng, s ct) xc nh bi tham s vo. TextArea(String): Khi to mt vng vn bn c ni dung xc nh bi tham s u vo. TextArea(String, int, int): Khi to vng vn bn vi ni dung c sn, rng xc nh. appendText(String): Thm mt on vn bn vo cui on vn bn trong vng. insertText(String, int): Chn mt on vn bn vo v tr xc nh (tham s th hai) ca vng

vn bn. replaceText(String, int, int): Thay th mt on vn bn trong vng, nh du bng v tr bt u v v tr kt thc (tham s th hai v th ba), bng mt on vn bn mi (tham s th nht). getRows()/getColums(): Tr v s dng/ct ca vng vn bn. Chng trnh 6.5 minh ho vic t cc i tng vn bn v vng vn bn vo mt frame. Chng trnh 6.5

Hnh 6.5: Kt qu demo Text. Button Button l i tng nt lnh, dng thc hin mt nhim v xc nh. Cc phng thc c bn

ca nt nhn: Button(String): Khi to nt nhn vi tn xc nh trn nt. setLabel(String)/getLabel(): Truy nhp tn ca nt nhn. Chng trnh 6.6 minh ho vic to mt nt nhn trong mt frame. Chng trnh 6.6

Hnh 6.6: Kt qu demo Button. Tuy nhin, khi click vo nt nhn ny, khng xy ra iu gi c. L do l chng ta cha ci t vic x l s kin cho nt nhn. Ni dung phn 6.1.3 s trnh by vic x l s kin cho cc i tng. 1.3/- Cc s kin c bn ca i tng Mi i tng component c mt s s kin xc nh, pht sinh t chnh i tng . Java cung cp mt s lp s kin c bn nm trong th gi java.awt.event:

import java.awt.event.*; Cc lp s kin c bn ca cc i tng bao gm: ActionEvent: Xut hin khi mt nt b click vo, mt danh sch (list) c chn, mt menu c chn. ComponentEvent: Xut hin khi mt component b thay i kch c, v tr, trng thi. FocusEvent: Xut hin khi mt component c hoc mt focus. ItemEvent: Xut hin khi mt menu item c chn hoc b, khi checkbox hoc list item c click vo. WindowEvent: Xut hin khi mt ca s c m ra, kch hot, ng li hoc thot ra. TextEvent: Xut hin khi gi tr vn bn ca cc i tng TextField v TextArea b thay i. MouseEvent: Xut hin khi chut c click, di chuyn qua, nhn xung v th ra. KeyEvent: Xut hin khi c u vo t bn phm. Cc giao tip c ci t x l cc s kin trn: ActionListener. ComponentListener FocusListener ItemListener WindowListener TextListener MouseListener v MouseMotionListener KeyListener Khi ci t cc giao tip ny, cn ci t li phng thc x l s kin:

xc nh s kin pht sinh t component no, ta dng phng thc getSource():

Chng trnh 6.7 ci t mt ng dng hon chnh, bao gm: Hai nhn tiu cho hai vn bn. Hai vn bn, nhp s liu vo. Bn nt nhn tng ng thc hin cc thao tc nhn, chia, cng, tr cc s liu nhp t hai vn bn. Thm mt nt nhn, khi click vo s thot khi chng trnh (chng trnh kt thc). Chng trnh 6.7

Lp trnh giao din trn Java Phn 3

Checkbox v Radio button l cc i tng dng nh du, hoc chn thng tin. S khc bit gia chng l checkbox cho php chn ng thi nhiu cng lc, trong khi , trong mi nhm radio button, ch cho php chn mt thng tin.

2/- Giao din vi cc i tng MultimediaNi dung phn ny s tp trung trnh by cc i tng multimedia, bao gm: nh du (Checkbox) v Nt chn (Radio button). La chn (Choice). Danh sch (List). Trnh n (Menu). 2.1/- nh du v nt chn Checkbox v Radio button l cc i tng dng nh du, hoc chn thng tin. S khc bit gia chng l checkbox cho php chn ng thi nhiu cng lc, trong khi , trong mi nhm radio button, ch cho php chn mt thng tin. Phng thc chung ca hai lp ny: setState(boolean)/getState(): Truy nhp n trng thi ca nt. Cc phng thc khi to Checkbox: Checkbox(): Khi to mt nh du rng. Checkbox(String): Khi to nh du c nhn xc nh. Checkbox(String, boolean): Khi to nh du c nhn, c trng thi xc nh. Cc phng thc khi to Radio button tng t nh Checkbox, ngoi tr vic phi ch ra nhm ca cc radio button: Checkbox(String, boolean, CheckboxGroup); Checkbox(String, CheckboxGroup, boolean); X l s kin thay i trng thi nt chn:

Kiu s kin: ItemEvent Ci t giao tip: ItemListener Phng thc xa l: itemStateChange(ItemEvent) Chng trnh 6.8 minh ho vic dng mt nhm radio button gm ba nt, tng ng vi ba mu (RED, BLUE, GREEN). Khi click vo nt no, th mu nn s i theo mu . Chng trnh 6.8

Hnh 6.7: Kt qu demo Radio Button. 2.2/- La chn Choice l i tng menu s xung, hin thi mt danh sch cc item v cho php ngi dng chn mt trong s cc item (tng t i tng dropdown list ca window). Cc phng thc c bn ca lp Choice: Choice(): Khi to i tng choice. addItem(String): Thm mt item vo danh sch la chn. remove(int): Xo item v tr th i trong danh sch (bt u l v tr 0). removeAll(): Xo ton b item trong danh sch chn. select(int)/select(String): Chn mt item theo s th t hoc theo tn. getSelectedIndex(): Tr v ch s ca item c chn. getSelectedItem(): Tr v tn ca item c chn.

getItem(int): Tr v tn ca item tng ng vi s th t a vo. X l s kin thay i trng thi nt chn: Kiu s kin: ItemEvent Ci t giao tip: ItemListener Phng thc xa l: itemStateChange(ItemEvent) Chng trnh 6.9 c chc nng tng t nh chng trnh 6.8: Thay i mu nn theo mu c chn. Nhng trong chng trnh ny, ta dng i tng choice, thay v dng radio button. Chng trnh 6.9

Hnh 6.8: Kt qu demo Choice Button. 2.3/- Danh sch List l mt danh sch hot ng tng t i tng choice. Tuy nhin, list cho php ngi dng c th chn mt hoc nhiu item cng mt lc. Cc phng thc c bn ca lp List: List(): Khi to mt danh sch rng, mi ln ch c chn mt item. List(int): Tng t, nhng c qui nh s dng c nhn thy. List(int, boolean): Khi to mt danh sch c s dng c nhn thy xc nh, ch cho php chn mt hay nhiu item xc nh bi tham s th hai. add(String): Thm mt item vo danh sch. add(String, int): Chn mt item vo v tr xc nh trong danh sch. Nu ch s chn vt ra khi phm vi danh sch, item s c thm vo cui.

replaceItem(String, int): Thay th mt item v tr xc nh (tham s th hai) trong danh sch bng mt item mi (tham s th nht). remove(int): Xo item v tr xc nh trong danh sch. removeAll(): Xo ton b item hin c ca danh sch. getSeletedIndex(): Tr v index ca item c chn (danh sch n chn). getSelectedItem(): Tr v item c chn (danh sch n chn). getSelectedIndexs(): Tr v ch s cc item c chn (danh sch a chn). getSelectedItems(): Tr v cc item c chn (danh sch a chn). X l s kin khi thay i item c chn: - Kiu s kin: ItemEvent - Ci t giao tip: ItemListener - Phng thc x l: itemStateChange(ItemEvent); Chng trnh 6.10 minh ho vic s dng i tng list vi kh nng a chn. Mi khi thay i item c chn, mt thng bo cc mu c chn s hin ra. Chng trnh 6.10

Hnh 6.9: Kt qu demo Listbox.

Lp trnh giao din trn Java Phn 4Ni dung phn ny s tp trung trnh by cc k thut trnh by cc i tng giao din (conponent) trn frame theo cc thit k khc nhau bng cch dng b qun l trnh by (Layout Manager).

2.4/- Trnh n Trnh n (menu) c dng trn cc thanh cng c ca cc ca s hoc l popup menu xut hin khi ta click chut phi vo mt i tng. Java cung cp mt s lp trnh n: Menubar: Thanh trnh n. Menu: Trnh n xung. PopupMenu: Trnh n xut hin khi click chut phi. MenuItem: Cc mc chn ca trnh n. Menubar Menubar l thanh cng c dng cha cc trnh n menu. Cc phng thc c bn ca lp Menubar: Menubar(): Khi to mt thanh cng c cho trnh n.

add(Menu): Thm mt trnh n mune ln thanh trnh n menubar. t mt menubar ca mt frame, ta gi phng thc ca frame:

Menu v PopupMenu Trnh n menu l i tng s s xung khi click chut ln i tng hin th ca menu. Menu cn c gi l menu con ca mt thanh trnh n. Cc phng thc c bn ca lp Menu: Menu(String): Khi to mt menu, vi tn xc nh. add(MenuItem): Thm mt item vo menu. add(Menu): Thm mt menu con vo menu c, dng khi mun to menu c nhiu mc. addSeparator(): Thm mt ng phn vng vo menu ( nhm cc item vi nhau). X l s kin ca lp Menu: - Kiu s kin: ActionEvent - Giao tip ci t: ActionListener - Phng thc x l: actionPerformed(ActionEvent); MenuItem MenuItem l i tng item trong cc trnh n menu. Mi item, khi c click vo s c tc dng nh mt nt lnh. Cc phng thc c bn ca lp MenuItem: MenuItem(String): Khi to mt item. CheckboxMenuItem(String): Khi to mt item c mc chn nh checkbox. getState(): Tr v trng thi ca item. Ch dng cho item c mc chn. enable(): Cho php item hot ng (l ch mc nh). disable(): Khng cho php item hot ng (lm m item i). X l s kin ca lp MenuItem: - Kiu s kin: ActionEvent - Giao tip ci t: ActionListener

- Phng thc x l: actionPerformed(ActionEvent); Chng trnh 6.11 minh ho vic s dng cc loi menu: To mt menubar ca frame. Trn menubar, to mt menu "File". Khi click vo s s xung mt menu vi cc item: New, Open, Save, Save As, Exit. Khi bm chut phi vo frame, s s ra mt menu popup gm cc item: Cut, Copy, Paste. Khi click chut vo item no trn cc menu, mt nhn trong frame s hin th tn ca item va c chn. Chng trnh kt thc khi click vo item Exit. Chng trnh 6.11

Hnh 6.10: Kt qu demo Menu.

3/- Cc k thut to TablesNi dung phn ny s tp trung trnh by cc k thut trnh by cc i tng giao din (conponent) trn frame theo cc thit k khc nhau bng cch dng b qun l trnh by (Layout Manager). Bao gm cc k thut sau: Cch trnh by theo dng (Flow layout)

Cch trnh by theo mng (Grid layout) Cch trnh by theo Border (Border layout) Cch trnh by theo GridBag (GridBag layout) Cch trnh by t do (Null layout) 3.1/- Trnh by Flow Layout Cch trnh by Flow Layout s xp cc i tng trn mt hng theo dng. Nu i tng mi thm khng ch (chiu rng) th n s t ng thm vo u dng mi. Cc phng thc: FlowLayout(): Khi to i tng trnh by. FlowLayout(int): Khi to i tng trnh by vi cch cn l xc nh. FlowLayout(int, int, int): Khi to vi ba tham s: Th nht l cch cn l, th hai l khong cch gia hai dng (chiu cao), th ba l khong cch gia hai i tng (chiu ngang). Tham s cn l c th nhn mt trong ba gi tr: - FlowLayout.LEFT: Cn l tri, l gi tr mc nh. - FlowLayout.CENTER: Cn l gia. - FlowLayout.RIGHT: Cn l phi. Chng trnh 6.12 minh ho cch trnh by flow layout: To ra mt dy 10 nt nhn v gn vo mt frame theo kiu flow layout. Chng trnh 6.12

Hnh 6.11: Kt qu demo Flow layout. Ht phn 4

Lp trnh giao din trn Java Phn 5 Cch trnh by GridBag Layout cng trnh by cc i tng tng t nh Grid Layout: Cc i tng s c nh v theo v tr cc (cell) ca mt khung li (grid). Tuy nhin, GridBag cho php ta nh kch thc ca i tng s chim bao nhiu v s c t v tr no trong khung li. 3.2/- Trnh by Grid Layout Cch trnh by Grid Layout s sp xp cc i tng theo dng bng, c xc nh s hng v s ct. Phng thc c bn: GridLayout(int, int): Khi to mt i tng trnh by. Hai tham s u vo ln lt l s hng v s ct ca grid trnh by. GridLayout(int, int, int, int): Khi to mt i tng trnh by, hai tham s u xc nh s hng v s ct trnh by. Hai tham s sau xc nh khong cch gia cc dng v cc ct ca bng. Lu : Khi s lng i tng c chn nhiu hn vo frame, ta mun chng trnh t tnh s hng, hoc t tnh s ct hin th, th ta tham s tng ng l 0. V d:

s c nh s hng trnh by l 3, s ct l tu thuc vo s i tng trong frame.

s c nh s ct l 2, s dng l mm do theo s cc i tng trong frame. Chng trnh 6.13 minh ho cch trnh by grid layout: To ra mt dy 10 nt nhn v gn

vo mt frame theo kiu grid layout. Chng trnh 6.13

Hnh 6.12: Kt qu demo Grid layout. 3.3/- Trnh by Border Layout Cch hin th Border Layout s chia frame thnh 5 vng c nh v t ng ko dn cc vng sao cho chim ht b mt ca frame: West: Vng pha ty, tc l pha l bn tri. East: Vng pha ng, tc l pha l bn phi. North: Vng pha bc, tc l pha l trn. South: Vng pha nam, tc l pha l di. Center: Vng trung tm, chnh gia frame. Phng thc c bn ca lp BorderLayout: BorderLayout(): Khi to mt i tng trnh by theo cch border. Khi mt frame c trnh by theo cch border, ta c th dng phng thc sau gn cc i tng vo cc vng ca frame:

V d:

s gn vo vng trung tm ca myFrame mt nt nhn c tn l "Click". Lu : Cch trnh by border lun chia frame thnh 5 vng xc nh. Nu gn nhiu i tng vo cng mt vng, ch c i tng gn sau l nhn thy c. Nu mun trong mt vng cha c nhiu i tng, ta c th gn vo mi vng mt Panel. Sau trong panel, ta chn cch trnh by ring cho panel v gn cc i tng vo panel. Chng trnh 6.14 minh ho cch trnh by border: Ta s gn vo nm vng ca frame nm nt nhn khc nhau. Chng trnh 6.14

Hnh 6.13: Kt qu demo Border layout. 3.4/- Trnh by GridBag Layout Cch trnh by GridBag Layout cng trnh by cc i tng tng t nh Grid Layout: Cc i tng s c nh v theo v tr cc (cell) ca mt khung li (grid). Tuy nhin, GridBag cho php ta nh kch thc ca i tng s chim bao nhiu v s c t v tr no trong khung li. Cc phng thc c bn: GridBagLayout(): Khi to mt i tng trnh by theo cch gridbag. setConstraints(Component, GridBagConstraints): t v tr v kch thc ca i tng component theo cc rng buc trong gridbagConstraints. GridBagConstraints y l lp cha cc rng buc cho cc i tng c trnh by theo cch GridBag. Cc phng thc v thuc tnh c bn ca lp GridBagConstraints: GridBagConstraints(): Khi to mt i tng rng buc ca GridBag. gridx/gridy: V tr ca cell m ta mun t i tng vo (theo chiu X v chiu Y). gridwidth/gridheight: Kch thc (vng trnh by) ca i tng (Theo chiu rng v chiu cao). fill: Xc nh cch t i tng, theo 4 cch: - GridBagConstraints.NONE: i tng khng thay i kch thc theo cc cell n chim. - GridBagConstraints.VERTICAL: i tng c chiu cao kn vng n chim. - GridBagConstraints.HORIZONAL: i tng c chiu rng kn vng n chim. - GridBagConstraints.BOTH: i tng c chiu cao v chiu rng ph kn vng n chim. ipadx/ipady: nh n v tng gim kch thc ca i tng khi khung cha b thay i kch thc (theo chiu X v chiu Y). insets: Xc nh khong cch gia cc cell theo bn hng: Trn, di, tri, phi. anchor: Xc nh v tr neo i tng khi kch thc khung cha thay i. Bao gm: NORTH, NORTHEAST, NORTHWEST, EAST, SOUTH, SOUTHEAST, SOUTHWEST. weightx/weighty: nh khong cch ln ra tng i gia cc i tng vi nhau.

Chng trnh 6.15 minh ho cch trnh by gridbag: To ra ba nt nhn trong frame, mi nt c mt s rng buc khc nhau v kch thc v v tr. Chng trnh 6.15

Lp trnh giao din trn Java Phn 6 Applet khng th chy nh mt ng dng Java c lp (n khng c hm main), m n ch chy c khi c nhng trong mt trang HTML (ui .htm, .html) v chy bng mt trnh duyt web thng thng.

n trang: Trc: 1 2 K 3.5/- Trnh by Null Layout Cch trnh by Null Layout s trnh by cc i tng khng theo mt quy tc no. Tt c u do ngi dng t nh v v thit lp kch thc cho mi i tng. nh v i tng bng phng thc setLocation():

nh kch thc i tng bng phng thc setSize():

Ngoi ra, c th va nh v, va nh kch thc cho i tng thng qua phng thc:

Trong , hai tham s du nh v i tng, hai tham s sau nh kch thc i tng. Chng trnh 6.16 minh ho cch trnh by t do Null layout: to ra hai nt nhn v gn vo frame theo hai cch khc nhau. Chng trnh 6.16

4/- Html v Applet Applet l mt chng trnh Java c th chy trong cc trnh duyt web c h tr Java. Tt c cc applet u l cc lp con ca lp Applet. to applet, ta cn import hai gi sau:

Hnh 6.15: Kt qu demo Null layout. 4.1/- Cu trc ca mt Applet Cu trc tng qut ca mt applet nh sau:

Cc phng thc c bn ca mt applet: init(): Khi to cc tham s, nu c, ca applet. start(): Applet bt u hot ng. stop(): Chm dt hot ng ca applet. destroy(): Thc hin cc thao tc dn dp trc khi thot khi applet. Lu : Khng phi tt c cc applet u phi ci t y 4 phng thc c bn trn. Applet cn c th ci t mt s phng thc tu chn (khng bt buc) sau: paint(Graphics): Phng thc v cc i tng giao din bn trong applet. Cc thao tc v ny c thc hin bi i tng ho Graphics (l tham s u vo). repaint(): Dng v li cc i tng trong applet. Phng thc ny s t ng gi phng thc update(). update(Graphics): Phng thc ny c gi sau khi thc hin phng thc paint nhm tng hiu qu v. Phng ny s t ng gi phng thc paint(). Chng trnh 6.17 ci t mt applet n gin, mi phng thc s in ra thng bo rng

applet ang trong thi im tng ng. Chng trnh 6.17

4.2/- S dng applet Applet khng th chy nh mt ng dng Java c lp (n khng c hm main), m n ch chy c khi c nhng trong mt trang HTML (ui .htm, .html) v chy bng mt trnh duyt web thng thng. Cc bc xy dng v s dng mt applet bao gm: Ci t chng trnh c dng mt applet nh mc 6.4.1. Bin dch m ngun thnh lp .class. Nhng m .class ca applet vo trang html. nhng mt applet vo mt trang html, ta dng th (tag) nh sau:

Trong : Tn applet l tn file m ngun bin dch thnh file chy c ui .class ca Java. Chiu rng v chiu cao l kch thc ca vng trn trang html m applet s c t vo. V d, trong trang myHtml.htm c cha ni dung nh sau:

s nhng applet c nh ngha trong chng trnh 6.17 vo mt vng c kch thc 200*20 trong trang myHtml. By gi, ta c th kim nghim chng trnh applet ca mnh bng cch m trang myHtml trn cc trnh duyt thng thng. Chng trnh 6.18 ci t mt applet c chc nng tng t nh chng trnh 6.7, thc hin cc thao tc tnh ton c bn trn hai s. Ngoi tr vic y l mt applet, nn c th chy trn mt trang html. Chng trnh 6.18

Khi nhng applet ny vo mt trang html bt k, ta c th kim tra thy rng n c chc nng tng t nh ng dng 6.7. Lu :s khc nhau gia mt application v mt applet: Application l mt ng dng Java c lp, n c th chy c lp trn my o Java. Trong khi , applet ch chy c khi nhng trong mt trang html, chy nh vo cc trnh duyt web c h tr Java.

Application chy da vo hm main(). Trong khi , applet khng c hm main(). hin th cc thng bo, application dng System.out.println(). Trong khi , applet dng phng thc drawString() ca lp Graphics. 4.3/- Truyn tham s cho Applet Trong nhiu trng hp, applet phi ph thuc vo cc tham s bn ngoi truyn vo. Khi ta c th dng th PARAM ca html truyn tham s cho applet. C php:

Khi , trong m ngun ca applet, ta dng phng thc getParameter() c gi tr cc tham s c truyn vo:

Chng trnh 6.19 minh ho vic truyn tham s cho mt applet: Applet m phng giao din tm kim: mt nhn hng dn, mt vn bn v mt nt nhn. Tu vo ngn ng m nhn v nt nhn c gi tr text khc nhau. Bin ngn ng l mt tham s truyn t trnh duyt vo. (y l m phng giao din, c ch tm kim khng hot ng). Chng trnh 6.19

Khi , applet phi c nhng vo trang html vi on m nh sau:

Ta c th thay th value ca param bng cc gi tr "vn", "fr" v "en" thy c cc ch ngn ng khc nhau c hin th trong applet. Ht phn 6

Lp trnh giao din trn Java Phn 7Swing l th vin lp trnh m rng ca Java. N m rng cc i tng giao din ho c bn ca Java. Swing cn c gi l th vin JFC (Java Foundation Class). Khi mun s dng cc i tng ho ca th vin ny, ta phi khai bo ch th:

n trang: Trc: 1 2 K

5/- Gii thiu v Swing

5.1/- M rng cc i tng component JFC m rng cc i tng c bn ca java thnh cc lp tng ng, ngoi tr vic c thm ch "J" u mi tn lp:

Cc lp m rng ny c y cc phng thc ca cc i tng lp c bn ca th vin java.awt. Ngoi ra, chng c b sung mt s phng thc to hiu ng giao din. Chng trnh 6.20 minh ho vic s dng i tng JButton. i tng JButton c m rng thm mt s tnh nng sau: JButton(String, Icon): Khi to mt nt nhn vi mt tn nhn v mt nh nn. nh nn c kiu icon (tham s th hai). setMnemonic(char): nh phm tt cho nt lnh. Khi ngi dng nhn "Ctrl+phm tt" th nt lnh cng thc thi tng t nh kkhi ta click chut vo nt lnh. setBorder(new MatteBorder(int, int, int, int, Icon)): Thit lp khung nn cho nt vi cc tham s: Khong cch t ch n bin ( rng bin) theo cc chiu trn di, tri phi, cui cng l nh nn cho nt. setBorder(new LineBorder(int)): Thit lp vin cho nt dng hnh ch nht, tham s xc nh mu cho vin ca nt. Ngoi ra, tham s ca phng thc ny cn c th l cc lp SoftBevelBorder, EtchedBorder v TitleBorder. setToolTipText(String): Thit lp dng tooltip cho i tng. Dng ny s hin ra khi ta di chut ln i tng trn ca s. Chng trnh 6.20

Trong chng trnh ny, c dng lnh gn cc i tng vo frame bng cch getContentPane(). y l phng thc m rng cho cc i tng khung cha container. S m rng ny s c trnh by chi tit trong phn tip theo. 5.2/- M rng cc i tng container Tng t nh cc i tng component, cc i tng container cng c m rng trong JFC thnh cc lp c tn tng ng v thm k t "J" u:

Chng trnh 6.21 minh ho vic s dng cc i tng m rng ca khung cha Frame thnh JFrame. Khung cha JFrame c nhiu tng trnh din khc nhau, cc tng l trong sut v chng kht ln nhau, khin cho ta vn c cm gic cc i tng c trnh by trn cng mt mt phng nh khung cha Frame ca th vin chun AWT. Mt s tng hay s dng ca lp JFrame (theo th t t trong ra ngoi): ContentPane: L tng thng dng nht, tng ny dng cha cc i tng component

c bn nh button, label, text, list MenubarPane: Tng dnh cha cc loi menu ca frame nh Menubar, PopupMenu. GlassPane: Tng ngoi cng, thng dng cha cc tooltip ca cc i tng trong tng Content. Khi ta set tooltipText cho mt i tng, tooltip s t ng c add vo tng Glass. truy nhp vo mt tng bt k, ta dng phng thc c tn:

V d:

s gn mt nt nhn c nhn Test vo tng Content ca khung cha myFrame. Chng trnh 6.21 minh ho vic gn cc i tng vo cc tng khc nhau: Gn mt nt nhn vo tng ContentPane. Gn mt thanh Menubar c cha mt menu File vo tng MenubarPane. Chng trnh 6.21

Lu : V cc i tng m rng ca th vin JFC c b sung kh nhiu tnh nng, c bit l cc tnh nng ho, do , cc i tng ny c nhc im l rt cng knh. V l do nng ti, cho nn hin nay, cc i tng ca th vin JFC vn t c ph bin trong cc ng dng applet.

6/- Case Study IVTrong phn ny, ta s minh ho cch s dng cc i tng ho ca th vin chun AWT vit mt chng trnh m phng mt my tnh Calculator. To mt frame lm khung chng trnh, tiu l "Java Calculator". Pha trn l mt Label (hoc vn bn u c, nhng nu dng vn bn th khng cho edit) hin cc s c nhp vo v kt qu tnh ton. Pha di l cc nt nhn tng ng vi cc ch s v php ton. Nhng nhm cc nt nhn cho ng b v layout p mt, ta nhm chng vo mt Panel. Khi , frame s cha trc tip hai i tng: label v frame. Ta s dng layout kiu null, v xc nh v tr chnh xc cho label v panel. i vi Panel, ta cng dng GridLayout. V c 10 nt nhn s v cc nt nhn ton t: nt cng, nt nhn, nt chia, nt tr, nt cn bc hai, nt phy thp phn, nt bng, nt lu tha, nt nghch o, nt reset. Nn s to thnh 4 dng, 5 ct: mi dng gm c 3 nt s v hai nt chc nng: - Dng 1: cc nt 7, 8, 9, cng, reset (C). - Dng 2: cc nt 4, 5, 6, tr, lu tha. - Dng 3: cc nt 1, 2, 3, nhn, nghch o. - Dng 4: cc nt 0, thp phn, nt bng, nt chia, nt cn bc hai. Vi cc nt s v nt thp phn, khi click vo nt th k t tng ng c hin ln trn label. Vi cc nt chc nng, khi click vo th thc hin php ton v hin kt qu ra mn hnh, nu c. Khi click vo nt bng (kt qu) th hin kt qu trn label. Chng trnh 6.22 ci t chi tit chng trnh ny. Chng trnh 6.22

Chng trnh 6.22 s cho kt qu nh hnh 6.16:

Hnh 6.16: Kt qu demo case study. Ht