Java GUI程序設(shè)計(jì)
容器(Container)繼承Component類,可以容納其它組件和容器。Window:可獨(dú)立存在的頂級(jí)窗口。
Panel:可以容納其它組件,但要依附于Window或Applet中。
Frame類:有標(biāo)題,可拖拽改變大小,初始化不可見(jiàn),使用BorderLayout,設(shè)置布局管理器通過(guò)方法setLayout設(shè)置。
布局管理器分類:
FlowLayout(流式):從左到右到頭換行,是Panel和Applet的默認(rèn)布局,參數(shù)FlowLayout.(LEFT/RIGHT/CENTER),靠中對(duì)齊,使用組件的理想尺寸。
int hgap,int vgap;?? //?水平和垂直象素,默認(rèn)為5。
public class MyFlowLayout extends Frame{ }??// 生成一個(gè)窗體類。
super(" ");? //設(shè)置標(biāo)題。
setLayout(new FlowLayout(FlowLayout.CENTER));?? //設(shè)置布局管理器。
BorderLayout(邊界):分為五個(gè)區(qū)域,是Frame和Dialog默認(rèn)布局,如果放入多個(gè)Component,后放入的會(huì)覆蓋前一個(gè)。
add(button,BorderLayout.NORTH);??? //設(shè)置組件位置。
GridLayout(網(wǎng)格):組件放入格子中,從左到右,從上到下(可以用來(lái)做計(jì)算器的按鈕布局)。
CardLayout(卡片式):只能看到最上面的Component。
控制組件方法:first(Container target)/ last(Container target)/ previous(Container target)/ next(Container target)。
getActionCommand()方法用于取比如按鈕上的字符。
GridBagLayout(網(wǎng)帶)
AWT中畫圖
創(chuàng)建Canvas類和Panel子類,并覆蓋paint方法,每當(dāng)組件出現(xiàn)時(shí)自動(dòng)調(diào)用paint方法。
如:
drawRect(50,50,70,70);? //畫矩形? int x,int y,int width,int height
drawRoundRect(110,10,50,30,20,10);??? //畫圓角矩陣?? int x,int y,int width,int height,int arcWidth,int arcHeight
AWTEvent :ActionEvent、TextEvent、ItemEvent 。
ComponentEvent :WindowEvent 。
InputEvent :MouseEvent 。
適配器與內(nèi)部類(推薦使用)
如:
Frame f = new Frame("TestFrame");
f.addWindowListener(new WindowAdapter() {
??????public void windowClosing(WindowEvent e) {
????????????System.exit(0);
??????}
});
posted on 2007-10-26 13:58 Rabbit 閱讀(378) 評(píng)論(0) 編輯 收藏