BoxLayout(盒布局管理器)通常和 Box 容器联合使用,Box 类有以下两个静态方法。
Box 还提供了用于决定组件之间间隔的静态方法,如表 1 所示。
网格包布局 | 说明 |
---|---|
static Component createHorizontalGlue() | 创建一个不可见的、可以被水平拉伸和收缩的组件 |
static Component createVerticalGlue() | 创建一个不可见的、可以被垂直拉伸和收缩的组件 |
static Component createHorizontalStrut(int width) | 创建一个不可见的、固定宽度的组件 |
static Component createVerticalStrut(int height) | 创建一个不可见的、固定高度的组件 |
static Component createRigidArea(Dimension d) | 创建一个不可见的、总是具有指定大小的组件 |
BoxLayout 类只有一个构造方法,BoxLayout(Container c,int axis)
其中,参数 Container 是一个容器对象,即该布局管理器在哪个容器中使用;第二个参数为 int 型,用来决定容器上的组件水平(X_AXIS)或垂直(Y_AXIS)放置,可以使用 BoxLayout 类访问这两个属性。
案例
package cn.com.planet;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class GirdBag {
/*author:命运的信徒
* date:2019/1/17
* arm:盒布局管理器
*/
private static void setPage(){
//1.设置窗体大小和标题
JFrame jf=new JFrame("网格包布局管理器");
jf.setSize(200, 200);
//2.设置关闭窗体就是关闭应用程序
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//创建一个面板
JPanel jp=new JPanel();
//设置面板的布局为盒布局模式
BoxLayout bly=new BoxLayout(jp, BoxLayout.X_AXIS);
//创建一个横向可以被水平拉伸或者收缩的组件
Box b=Box.createVerticalBox();
//创建一个按钮
JButton jb1=new JButton("1");
JButton jb2=new JButton("2");
JButton jb3=new JButton("3");
//这个盒容器添加三个按钮
b.add(jb1);
//添加一个组件,空白的高度为100
b.add(Box.createVerticalStrut(100));
b.add(jb2);
b.add(Box.createVerticalStrut(50));
b.add(Box.createHorizontalStrut(200));
b.add(jb3);
//面板添加盒容器
jp.add(b);
jf.add(jp);
//3.可见的窗体
jf.pack();
jf.setVisible(true);
}
public static void main(String[] args) {
setPage();
}
}
效果