如何在boxLayout中两个按钮之间添加空格?

52

我在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());

我非常确定这段代码根本无法编译,因为"float"是一个保留关键字,不允许作为对象名称。 - Nico Wawrzyniak
1个回答

97
如果你想在组件之间增加空间,你可以给一个或者两个组件添加一个空边框,或者插入不可见的组件来提供空间。你可以使用 Box 类创建不可见的组件。 既然你已经尝试过 glue 但没有成功(我怀疑为什么?),你可以尝试类似 "Rigid area" 的东西。
// Horizontal spacer
container.add(firstComponent);
container.add(Box.createRigidArea(new Dimension(5, 0)));
container.add(secondComponent);

请看使用不可见组件作为填充物,它提供了许多选项和解释。


附加信息,来自放置组件间隔

三个因素影响容器中可见组件之间的间距:

  • 布局管理器

    一些布局管理器自动在组件之间添加间距,而其他一些则不会。有些布局管理器可以让您指定组件之间的间距量。有关间距支持的详细信息,请参阅每个布局管理器的操作页面。

  • 不可见组件

    您可以创建轻量级组件,这些组件不执行绘画操作,但可以在GUI中占用空间。通常,您在由BoxLayout控制的容器中使用不可见组件。有关如何使用不可见组件的示例,请参阅如何使用BoxLayout

  • 空边框

    无论使用哪种布局管理器,您都可以通过向组件添加空边框来影响组件之间的间距。最适合使用空边框的组件是通常没有默认边框的组件,例如面板和标签。某些其他组件可能无法与边框一起在某些外观和感觉实现中正常工作,因为它们的绘制代码的实现方式不同。有关边框的信息,请参阅如何使用边框


7
т║ћУ»ЦТў»Dimension(0, 5)УђїжЮъDimension(5, 0)тљД№╝Ът»╣ТѕЉТЮЦУ»┤№╝їDimension(5, 0)Т▓АТюЅС╗╗СйЋСйюућесђѓ - adrian
1
@AdrianZhang 没错!Dimension (5, 0) 是用于水平空间,而 Dimension (0, 5) 则是用于垂直空间。 - Kenny Dabiri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接