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

Sus*_*sie 42 java user-interface swing jbutton 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());
Run Code Online (Sandbox Code Playgroud)

COD*_*BOY 77

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

因为你已经使用胶水没有成功(我怀疑为什么?),你可以试试像Rigid area这样的东西,

// Horizontal spacer
container.add(firstComponent);
container.add(Box.createRigidArea(new Dimension(5, 0)));
container.add(secondComponent);
Run Code Online (Sandbox Code Playgroud)

看看使用不可见组件作为填充程序,它为您提供了许多选项和解释.


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

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

  • 布局管理器

    一些布局管理器自动在组件之间放置空间 别人不这样做.有些允许您指定组件之间的空间量.有关间距支持的信息,请参阅每个布局管理器的操作方法页面.

  • 隐形组件

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

  • 空的边框

    无论布局管理器是什么,您都可以通过向组件添加空边框来影响组件之间的明显空间量.空边框的最佳候选者是通常没有默认边框的组件,例如面板和标签.由于绘制代码的实现方式,某些其他组件在某些外观实现中可能无法很好地处理边框.有关边框的信息,请参见如何使用边框.

  • 难道不是`Dimension(0,5)`而不是`Dimension(5,0)`吗?对我来说,“ Dimension(5,0)”不做任何事情。 (2认同)