java-如何在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());
Susie asked 2020-08-10T17:55:55Z
1个解决方案
76 votes

如果要在组件之间留有空间,则可以为一个或两个组件添加一个空边框,或插入不可见的组件以提供空间。 您可以在Box类的帮助下创建不可见的组件。

由于您已经使用过胶水,但没有成功(我怀疑为什么吗?),因此您可以尝试使用“刚性区域”之类的方法,

// Horizontal spacer
container.add(firstComponent);
container.add(Box.createRigidArea(new Dimension(5, 0)));
container.add(secondComponent);

看一下使用不可见组件作为填充剂,它为您提供了很多选择和解释。


其他信息,从在组件之间放置空间开始,

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

  • 布局经理

    一些布局管理器会自动在组件之间放置空间。 别人没有。 有些可以让您指定组件之间的空间量。 有关间距支持的信息,请参见每个布局管理器的使用方法页面。

  • 隐形组件

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

  • 空边框

    无论使用什么布局管理器,都可以通过向组件添加空边框来影响组件之间的表观空间。 空边框的最佳候选对象是通常没有默认边框的组件,例如面板和标签。 在某些外观实现中,某些其他组件可能无法很好地与边框配合使用,这是因为其绘画代码的实现方式。 有关边框的信息,请参见如何使用边框。

COD3BOY answered 2020-08-10T17:56:46Z
translate from https://stackoverflow.com:/questions/8335997/how-can-i-add-a-space-in-between-two-buttons-in-a-boxlayout