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

2022-08-31 20:54:01

我在一个组中有四个按钮。这只是两个示例,因为它都是重复的代码。我想在每个按钮之间创建一个轻微的空间,这样它们就不会相互碰撞。我几乎尝试了其中的所有方法,但没有任何效果。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());

答案 1

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

既然你已经使用了胶水而没有成功(我怀疑为什么?),你可以尝试像刚性区域这样的东西,

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

看看使用隐形组件作为填充物,它为您提供了很多选择和解释。


附加信息,从组件之间放置空间

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

  • 布局管理器

    一些布局管理器会自动在组件之间放置空间;其他人则不然。有些允许您指定组件之间的空间量。有关间距支持的信息,请参阅每个布局管理器的操作方法页面。

  • 不可见组件

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

  • 空边框

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


答案 2

推荐