JAVA---布局
1:流式布局器
流式布局将组件按照从左到右的顺序自然排列,是缺省的设置方式。
FlowLayout();构建一个新的流式布局器,中央对齐,对象之间以5单元水平和垂直间隔。
FlowLayout(int align);..............通过align设置对齐方式,.............。
FlowLayout(int align,int hgap,int vgap);构建一个新的流式布局器,通过align设置对齐方式,对象之间以hgap单元水平间隔和以vgap单元垂直间隔。
2:边缘布局器
边缘布局器是一个分东(EAST),南(SOUTH),西(WEST),北(NORTH)和中(CENTER)五部分的容器,其构造函数:
BorderLayout();构建一个新的边缘布局,对象之间没有间隔。
BorderLayout(int hgap,int vgap);构建一个新的边缘布局,对象之间的水平间隔为hgap,垂直间隔为vgap。
3:面板
面板是最简单的容器类,应用程序可以在面板提供的空间里任意放置组件和其他面板。
Panel();使用缺省的布局管理器创建一个面板。
Panel(LayoutManager layout);用指定的layout布局管理器创建一个面板。
public void setLayout(LayoutManager mgr);设置布局管理器。
eg:
import java.awt.*;
import java.applet.*;
import java.applet.Applet;
public class UsePanel extends Applet{
Label lblName,lblNumber,lblSex,lblJob,lblText;
TextField tfName,tfNumber;
Checkbox chMale,chFemale;
CheckboxGroup c;
TextArea taText;
Choice chJob;
Button btnOk,btnCancel;
Panel p1,p2,p3,p4,p5,p6,p7,p8,p9;
public void init(){
lblName=new Label("姓名:");
lblNumber=new Label("身份证号:");
lblSex=new Label("性别是:");
lblJob=new Label("职业是:");
lblText=new Label("个性化宣言:");
tfName=new TextField(23);
tfNumber=new TextField(20);
taText=new TextArea(10,20);
c=new CheckboxGroup();
chMale=new Checkbox("男",c,true);
chFemale=new Checkbox("女",c,false);
chJob=new Choice();
chJob.add("计算机");
chJob.add("医生");
chJob.add("教师");
chJob.add("军队");
btnOk=new Button("确定");
btnCancel=new Button("取消");
p1=new Panel();
p2=new Panel();
p3=new Panel();
p4=new Panel();
p5=new Panel();
p6=new Panel();
p7=new Panel(new BorderLayout());
p8=new Panel();
p9=new Panel(new BorderLayout());
p1.add(lblName);
p1.add(tfName);
p2.add(lblNumber);
p2.add(tfNumber);
p3.add(lblSex);
p3.add(chMale);
p3.add(chFemale);
p4.add(lblJob);
p4.add(chJob);
p5.add(p3);
p5.add(p4);
p6.setLayout(new BorderLayout());
p6.add(p1,BorderLayout.NORTH);
p6.add(p2,BorderLayout.CENTER);
p6.add(p5,BorderLayout.SOUTH);
p7.add(lblText,BorderLayout.NORTH);
p7.add(taText,BorderLayout.CENTER);
p8.setLayout(new FlowLayout(FlowLayout.CENTER,30,10));
p8.add(btnOk);
p8.add(btnCancel);
p9.add(p6,BorderLayout.NORTH);
p9.add(p7,BorderLayout.CENTER);
p9.add(p8,BorderLayout.SOUTH);
add(p9);
}
}