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);
	}
		
}
经验分享 程序员 微信小程序 职场和发展