您的位置:首页 > 编程语言

利用awt与swing进行桌面编程(1)

2009-11-13 22:48 363 查看
一.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();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: