import java.awt.*;
import javax.swing.*;
public class BoxLayoutTest extends JFrame{
public static void main(String args[])
{
JFrame frame=new JFrame("箱式管理器");
Box boxLabel=Box.createVerticalBox(); //创建其纵向显示的box
boxLabel.add(new JLabel("添加信息")); //创建添加信息标签
boxLabel.add(Box.createVerticalStrut(20)); //创建一个不可见的,纵向高度为20的组件
boxLabel.add(new JLabel("修正信息"));
boxLabel.add(Box.createVerticalStrut(20));
boxLabel.add(new JLabel("删除信息"));
Box boxText=Box.createHorizontalBox();
boxText.add(new JTextField(10));
boxLabel.add(Box.createVerticalStrut(20));
boxText.add(new JTextField(10));
boxLabel.add(Box.createVerticalStrut(20));
boxText.add(new JTextField(10));
Box boxCheckBox=Box.createVerticalBox();
boxCheckBox.add(new JCheckBox("添加"));
boxLabel.add(Box.createVerticalStrut(20));
boxCheckBox.add(new JCheckBox("修正"));
boxLabel.add(Box.createVerticalStrut(20));
boxCheckBox.add(new JCheckBox("删除"));
Box box=Box.createHorizontalBox(); //横向显示组件的box
box.add(boxLabel);
box.add(boxText);
box.add(Box.createGlue()); //创建一个不可见的Glue组件
box.add(boxCheckBox);
Container ctn=frame.getContentPane();
ctn.add(box,BorderLayout.CENTER);
frame.setBounds(400, 200, 500, 300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
/*public BoxLayout(Container target,int axis) //创建一个根据指定轴对组件进行放置的布局管理器
* X_AXIS:从左到右横向布置组件,即将组件放在一行
* Y_AXIS:从上带下纵向放置组件
* LINE_AXIS:按照文字在一行中的排列方式布置组件
* PAGE_AXIS:按照文本行在一页中的排列方式布置组件
* createVerticalStrut()方法可以将两个垂直放置的组件拉开指定高度的间隔
* createHorizontalStrut()方法可以将两个水平放置的组件拉开指定宽度的距离
* glue组件可扩充到必要的大小,以便填满框式布局中相邻组件之间的空间。这就导致在水平组件中会产生最大宽度,在垂直布局中产生最大高度。利用glues组件,可以使组件与组件之间以及组件与容器之间的额外空间得到平均分布。可以用一下两个静态方法分别创建针对水平布局和垂直布局的glue组件:
public static Component createHorizontalGlue()
public static Component createVerticalGlue()
strut大小是固定的。可以用这个组件向框式布局内的两个组件之间加入固定数量的间隔。
fillers组件允许指定尺寸的最小值,最大值以及某个期望的值。过滤器是一些内部类Box.Filler对象。当把一个过滤器添加到水平方框中的两个组件之间时,它就会保持最小的宽度值,并且保证容器的高度最小。可以用以下所示的方法创建过滤器对象:
Box.Filler(new Dimension(w1, h1), //mininum size
new Dimension(w2, h2), //prefered size
new Dimension(w3, h3)) //maxnum size
*/