利用awt與swing進行桌面程式設計(1)

weixin_30924079發表於2020-04-04

  一.awt包中常用控制元件類

1.標籤類Label

Label(String label,int align)

2.文字框類TextField

TextField(String text,int cols)

3.核取方塊Checkbox和單選按鈕CheckboxGroup

Checkbox(String label,boolean state) //state為true時表示選中,反之表示未選中

4.選擇框Choice

5.文字域類TextArea

6.按鈕類Button

二.事件處理

1.事件類Event

常見的事件型別包括ActionEvent,ItemEvent,KeyEvent,MouseEvent

2.在java中,可以使用監視器介面來完成對於各類事件的處理

例如通過actionPerformed()方法的重寫來處理ActionEvent,通過itemStateChanged()來處理ItemEvent事件。

三.框架類和皮膚類

1.框架類

框架是一個容器類控制元件

主要方法:

1)Frame(String strt)   //構造視窗

2)dispose()               //撤銷視窗

2.皮膚類

皮膚類也是一個容器類控制元件,但其只是一個區域性

3.佈局管理器

1).BorderLayout

邊界佈局將視窗按照東南西北中分為5個部分,每個區域至多放置一個控制元件,且這個控制元件充滿整個區域

2).GridLayout

網格佈局將所有的控制元件放置在各個網格中,每個控制元件大小相同,切充滿整個“格”。

GridLayout(int rows,int cols,int hgap,int vgap)

四.一個java程式使用awt包的例項

import java.awt.event.*; import java.awt.peer.PanelPeer; import java.awt.*; public class test4 extends Frame implements ActionListener,ItemListener{ Label Inform,Login,Key; TextField textLogin,textKey; Checkbox box1,box2; CheckboxGroup boxgroup; Checkbox check1,check2,check3,check4,check5,check6,check7,check8; Label Name,lSex,Hobby; TextField textName; Label Birthday; Choice ychoice,mchoice,dchoice; TextArea areaInform; Button bEnter,bCancel; String Sex="",Year="",Month="",Day=""; String Film="", Reading="",NetWork="",Program="", Art="",Tourism="",Game="",Others=""; String strkey=""; boolean flag=true; public test4() { super("使用者個人資訊"); Inform=new Label("請輸入您的個人資訊,賬號,密碼,單擊確定"); add(Inform,BorderLayout.NORTH); Panel centerPanel=new Panel(); //panel1 Panel panel1=new Panel(); Login=new Label("賬號:"); textLogin=new TextField("",6); Key=new Label("密碼"); textKey=new TextField("",6); textKey.setEchoChar('*'); panel1.add(Login); panel1.add(textLogin); panel1.add(Key); panel1.add(textKey); centerPanel.add(panel1); //panel2 Panel panel2=new Panel(); Name=new Label("姓名:"); lSex=new Label("性別:"); textName=new TextField("",6); boxgroup=new CheckboxGroup(); box1=new Checkbox("男",boxgroup,true); box2=new Checkbox("女",boxgroup,false); panel2.add(Name); panel2.add(textName); panel2.add(lSex); panel2.add(box1); panel2.add(box2); centerPanel.add(panel2); //panel3 Panel panel3=new Panel(); Birthday=new Label("生日"); ychoice=new Choice(); ychoice.add("1989年"); ychoice.add("1990年"); mchoice=new Choice(); mchoice.add("11月"); mchoice.add("12月"); dchoice=new Choice(); dchoice.add("11日"); dchoice.add("12日"); ychoice.addItemListener(this); mchoice.addItemListener(this); dchoice.addItemListener(this); panel3.add(Birthday); panel3.add(ychoice); panel3.add(mchoice); panel3.add(dchoice); centerPanel.add(panel3); //panel4 Panel panel4=new Panel(); panel4.setLayout(new GridLayout(2,5)); Hobby=new Label("興趣"); check1=new Checkbox("電影",false); check2=new Checkbox("閱讀",false); check3=new Checkbox("程式設計",false); check4=new Checkbox("網路",false); check5=new Checkbox("藝術",false); check6=new Checkbox("旅遊",false); check7=new Checkbox("遊戲",false); check8=new Checkbox("其他",false); check1.addItemListener(this); check2.addItemListener(this); check3.addItemListener(this); check4.addItemListener(this); check5.addItemListener(this); check6.addItemListener(this); check7.addItemListener(this); check8.addItemListener(this); panel4.add(Hobby); panel4.add(check1); panel4.add(check2); panel4.add(check3); panel4.add(check4); panel4.add(new Label()); panel4.add(check5); panel4.add(check6); panel4.add(check7); panel4.add(check8); centerPanel.add(panel4); areaInform=new TextArea("",3,30); centerPanel.add(areaInform); add(centerPanel); Panel bPanel=new Panel(); bEnter=new Button("確定"); bCancel=new Button("取消"); bEnter.addActionListener(this); bCancel.addActionListener(this); bPanel.add(bEnter); bPanel.add(bCancel); add(bPanel,BorderLayout.SOUTH); setSize(260,320); setVisible(true); } public void actionPerformed(ActionEvent ae) { areaInform.setText(""); if(ae.getSource()==bEnter) { if(flag==true) { flag=false; areaInform.append("姓名:"+textName.getText()+"\n"); areaInform.append("性別:"+lSex+"\n"); areaInform.append("生日:"+Year+Month+Day+"\n"); areaInform.append("愛好:"+Film+Reading+NetWork+Program+Art+Tourism+Game+Others+"\n"); Inform.setText("請再輸入一次密碼,然後單擊確定"); strkey=textKey.getText(); textKey.setText(""); } else { if(textKey.getText().equals(strkey)) Inform.setText("註冊成功"); else Inform.setText("請再一次輸入密碼,然後單擊確定"); } } else { System.exit(0); } } public void itemStateChanged(ItemEvent ie) { if(ie.getItemSelectable()==ychoice) Year=ychoice.getSelectedItem(); if(ie.getItemSelectable()==mchoice) Month=mchoice.getSelectedItem(); if(ie.getItemSelectable()==ychoice) Day=dchoice.getSelectedItem(); if(box1.getState()) Sex=box1.getLabel(); if(box2.getState()) Sex=box2.getLabel(); if(check1.getState()) Film=check1.getLabel(); else Film=""; if(check2.getState()) Reading=check2.getLabel(); else Reading=""; if(check3.getState()) NetWork=check3.getLabel(); else NetWork=""; if(check4.getState()) Program=check4.getLabel(); else Program=""; if(check5.getState()) Art=check5.getLabel(); else Art=""; if(check6.getState()) Tourism=check6.getLabel(); else Tourism=""; if(check7.getState()) Game=check7.getLabel(); else Game=""; if(check8.getState()) Others=check8.getLabel(); else Others=""; } public static void main(String[] args) { // TODO Auto-generated method stub new test4(); } }

轉載於:https://www.cnblogs.com/karying/archive/2009/11/13/2015399.html

相關文章