如何在boxLayout的两个按钮之间添加空格?
问题内容:
我一BoxLayout
组有四个按钮。这只是两个示例,因为它们都是重复的代码。我想在每个按钮之间创建一个很小的空间,以免它们彼此碰到。我几乎尝试了中的所有方法,但.add(Box.Create....)
没有任何效果。
enter.add(Box.createVerticalGlue());
enter.add(Box.createHorizontalGlue());
//enter.add(new JSeparator(SwingConstants.HORIZONTAL));
JButton float = new JButton("LOWER");
float.add(Box.createVerticalGlue());
float.add(Box.createHorizontalGlue());
问题答案:
如果要在组件之间留有空间,则可以为一个或两个组件添加一个空边框,或插入不可见的组件以提供空间。您可以在Box类的帮助下创建不可见的组件。
由于您已经使用过胶水,但没有成功(我怀疑为什么吗?),因此您可以尝试使用类似 Rigid area的方法 ,
// Horizontal spacer
container.add(firstComponent);
container.add(Box.createRigidArea(new Dimension(5, 0)));
container.add(secondComponent);
看一下使用不可见组件作为填充剂,它为您提供了很多选择和解释。
其他信息,从在组件之间放置空间开始,
三个因素影响容器中可见组件之间的空间量:
- 布局经理
一些布局管理器会自动在组件之间放置空间。别人没有。有些可以让您指定组件之间的空间量。有关间距支持的信息,请参见每个布局管理器的使用方法页面。
- 隐形组件
您可以创建轻量级组件,这些组件不执行任何绘制,但是会占用GUI中的空间。通常,您在所控制的容器中使用不可见的组件
BoxLayout
。有关使用不可见组件的示例,请参见如何使用BoxLayout。
- 空边框
无论使用什么布局管理器,都可以通过向组件添加空边框来影响组件之间的表观空间。空边框的最佳候选对象是通常没有默认边框的组件,例如面板和标签。在某些外观实现中,某些其他组件可能无法很好地与边框配合使用,这是因为其绘画代码的实现方式。有关边框的信息,请参见如何使用边框。