JAVA Swing 小白学习篇之盒布局管理器怎么用 ?

版权声明:博客知识产权来源命运的信徒,切勿侵权 https://blog.csdn.net/qq_37591637/article/details/86533787

基础知识:


盒布局管理器

BoxLayout(盒布局管理器)通常和 Box 容器联合使用,Box 类有以下两个静态方法。

  • createHorizontalBox():返回一个 Box 对象,它采用水平 BoxLayout,即 BoxLayout 沿着水平方向放置组件,让组件在容器内从左到右排列。
  • createVerticalBox():返回一个 Box 对象,它采用垂直 BoxLayout,即 BoxLayout 沿着垂直方向放置组件,让组件在容器内从上到下进行排列。


Box 还提供了用于决定组件之间间隔的静态方法,如表 1 所示。
 

表1 Box类设置组件间隔的静态方法
网格包布局 说明
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();
	}
}

效果

猜你喜欢

转载自blog.csdn.net/qq_37591637/article/details/86533787
今日推荐