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); } }