参考 zyj0813 的布局管理的文章
布局管理主要有边界布局,流布局还有网格布局,编程的思路大体相似:
public MyBorderLayout() {
JButton jb1=new JButton("按钮1");
JButton jb2=new JButton("按钮2");
JButton jb3=new JButton("按钮3");
this.add(jb1, BorderLayout.CENTER);
this.add(jb2, BorderLayout.EAST);
this.add(jb3, BorderLayout.SOUTH);
// 窗体设置的部分
this.setTitle("边界布局管理");
this.setBounds(0, 0, 200, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
流布局管理
public MyFlowLayout() {
for(int i=1;i<10;i++) {
this.add(new JButton("jb"+i));
}
this.setLayout(new FlowLayout(FlowLayout.LEFT));//
this.setTitle("流布局管理");
this.setSize(500, 500);
this.setLocation(0,0);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
网格布局管理:
int size = 9;
JButton jb[] = new JButton[size];//定义按钮的数组
for(int i=0;i<9;i++) {
jb[i]=new JButton("按钮"+i);//初始化按钮操作
}
for(int i=0;i<9;i++) {
this.add(jb[i]);
}
this.setLayout(new GridLayout(3, 3, 20, 20));
this.setTitle("网格布局管理");
this.setSize(500, 500);
this.setLocation(0,0);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
首先,面板也是一种容器,可以装一些组件来布局,但是它必须要被添加到其他的容器中去。相当于在原有的布局管理操作之后,对原来的布局用面板来细分,被用于复杂的布局管理。我们对上面的布局管理的思路做修改:
int size = 9;
JButton jb[] = new JButton[size];//定义大小为size的按钮数组
for(int i=0;i<9;i++) {
jb[i]=new JButton("按钮"+i);//初始化按钮操作
}
JPanel jp1=new JPanel();//初始化面板,默认流布局
JPanel jp2=new JPanel();
JPanel jp3=new JPanel();
for(int i=0;i<3;i++) {
jp1.add(jb[i]); //将按钮0-3添加到面板中
}
for(int i=3;i<6;i++) {
jp2.add(jb[i]);
}
for(int i=6;i<9;i++) {
jp3.add(jb[i]);
}
this.add(jp1);
this.add(jp2);
this.add(jp3);
this.setLayout(new GridLayout(1, 3, 20, 20));//对面板做网格布局管理