java Swing布局管理之BoxLayout布局

BoxLayout:可以指定在容器中是否对控件进行水平或者垂直放置,比 FlowLayout 要更为灵活

BoxLayout与其他布局管理器稍有不同,必须向其构造函数中传递容器实例的引用,由该容器使用BoxLayout。另外必须指定BoxLayout中组件的布局方式:垂直排列(按列)或水平排列(按行)。用水平组件和垂直组件的不同组合嵌套多面板的作用类似于 GridBagLayout,但没那么复杂。

1.构造函数

BoxLayout(Container target, int axis) :创建一个将沿给定轴放置组件的布局管理器。

LINE_AXIS  :指定应该根据目标容器的 ComponentOrientation 属性确定的文本行方向放置组件。

PAGE_AXIS :指定应该根据目标容器的 ComponentOrientation 属性确定的文本行在页面中的流向来放置组件。

X_AXIS  :指定组件应该从左到右放置。

Y_AXIS  :指定组件应该从上到下放置。

2.常用方法

getAxis()  :返回用于布局组件的轴。

getLayoutAlignmentX(Container target)  :返回容器沿 X 轴的对齐方式。

getLayoutAlignmentY(Container target) :  返回容器沿 Y 轴的对齐方式

getTarget() :返回使用此布局管理器的容器。

3.实例

<span style="font-family:KaiTi_GB2312;font-size:18px;">import java.awt.Container;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.UIManager;

public class BoxLayoutDemo {
	public static void main(String[] args) {
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (Exception e) {
		}
		JFrame frame = new JFrame("BoxLayout Test");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Container panel = frame.getContentPane();
		panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
		for (float align = 0.0f; align <= 1.0f; align += 0.25f) {
			JButton button = new JButton("X align = " + align);
			button.setAlignmentX(align);
			panel.add(button);
		}
		frame.setSize(400, 300);
		frame.setVisible(true);
	}

}
</span>


4.结果


  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java Swing 的盒子布局管理器(Box Layout Manager)是一种非常常用的布局管理器。它可以将组件垂直或水平地排列,使组件之间具有等距离的间隔。盒子布局管理器使用了一个概念叫做盒子(Box),可以是水平盒子(Horizontal Box)或者垂直盒子(Vertical Box)。在盒子中,每个组件都沿着盒子的方向排列,可以根据需要设置组件之间的间距,也可以设置组件的对齐方式。 使用盒子布局管理器的步骤如下: 1. 创建一个容器对象,例如 JPanel。 2. 调用 JPanel 的 setLayout 方法,设置盒子布局管理器。 3. 创建需要添加到容器中的组件对象。 4. 调用容器的 add 方法,将组件添加到容器中。 下面是一个创建水平盒子的示例代码: ``` JPanel panel = new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS)); JLabel label1 = new JLabel("Label 1"); JLabel label2 = new JLabel("Label 2"); JLabel label3 = new JLabel("Label 3"); panel.add(label1); panel.add(Box.createHorizontalStrut(10)); // 添加一个水平间距 panel.add(label2); panel.add(Box.createHorizontalGlue()); // 添加一个水平可伸缩的空白区域 panel.add(label3); ``` 在这个示例中,创建了一个 JPanel 对象,并设置了水平盒子布局管理器。然后创建了三个 JLabel 组件,分别添加到 JPanel 中,并使用了 Box.createHorizontalStrut 和 Box.createHorizontalGlue 方法添加了水平间距和可伸缩的空白区域。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值