java GUI编程之嵌套盒式布局
原理
运用的是BoxLayout布局的, BoxLayout布局比较规整,适合做第一层封装。
程序运行效果图
说明
第一列的信息添加到BoxV1容器中,第二列的信息添加到Boxv2容器中,然后将两个容器都添加到BaseBox容器中,再将BaseBox容器添加到窗口。
源码
package demo2;
import javax.swing.Box;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class MyFrame extends JFrame
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
MyFrame window = new MyFrame();
}
MyFrame()
{
this.setTitle("嵌套盒式布局");//设置窗口
this.setBounds(100,100,310,260);//设置 x y 坐标 和宽度及高度
this.setLayout(new java.awt.FlowLayout());//设置布局格式
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置点击程序右上角叉号,程序退出
this.setResizable(false);//窗口不可放大或缩小
Box baseBox, boxv1, boxv2;//设置了三个盒式布局,其中baseBox用于存放boxv1盒子和boxv2盒子
//boxv1盒子中存放第一列的组件(姓名 Email 职业)
//boxv1盒子中存放第二列的组件(三个文本框)
boxv1 = Box.createVerticalBox();//boxv1 和 boxv2都是竖着的列所以是VERTICALBOX
boxv2 = Box.createVerticalBox();
baseBox = Box.createHorizontalBox();//baseBox将两个组件组装,所以是 HORIZONTALBOX
//完成第一列的组件添加
boxv1.add(new JLabel("姓名"));
boxv1.add(Box.createVerticalStrut(8));//添加中间的间隙
boxv1.add(new JLabel("email"));
boxv1.add(Box.createVerticalStrut(8));
boxv1.add(new JLabel("职业"));
boxv1.add(Box.createVerticalStrut(8));
//完成第二列的组件添加
boxv2.add(new JTextField(10));
boxv2.add(Box.createVerticalStrut(8));
boxv2.add(new JTextField(10));
boxv2.add(Box.createVerticalStrut(8));
boxv2.add(new JTextField(10));
boxv2.add(Box.createVerticalStrut(8));
//将第一列和第二列合并到baseBox中
baseBox.add(boxv1);
baseBox.add(Box.createHorizontalStrut(10));
baseBox.add(boxv2);
this.add(baseBox);
//设置窗口可见,这个要放到最后
this.setVisible(true);
}
}
