2011-12-01 125 views
36

我在BoxLayout组中有四个按钮。这只是两个示例,因为它是全部重复的代码。我想在每个按钮之间创建一个小空间,这样它们就不会碰到对方。我已经尝试了几乎所有的方法在.add(Box.Create....),没有任何工作。如何在boxLayout中的两个按钮之间添加空格?

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()); 
+0

哦!我没有意识到你可以做到这一点。 – Susie

+1

很高兴帮助。您也可以访问您的[早期问题](http://stackoverflow.com/users/998505/susie?tab=questions)以查看是否有可以标记为“正确”的答案。 –

回答

71

如果你想拥有的组件之间的空间,你可以空边框添加到一个或两个部件,或者插入不可见的部件提供空间。您可以在Box类的帮助下创建不可见的组件。

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

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

看一看Using Invisible Components as Filler它给你很多的选择和解释。


更多的信息,从Putting Space Between Components

三个因素影响的有形成分之间的间距在一个容器:

  • 布局管理

    一些布局管理器自动在组件之间放置空间;别人不会。一些让你指定组件之间的空间量。有关间距支持的信息,请参阅每个布局管理器的how-to页面。

  • 隐形成分

    您可以创建执行没有绘画轻质部件,但可以占用空间在GUI中。通常情况下,您使用由BoxLayout控制的容器中的不可见部件。有关使用不可见组件的示例,请参见How to Use BoxLayout

  • 空边界

    无论什么布局管理器,您可以通过添加空边框组件影响的组件之间的空间表观量。空白边框的最佳候选对象通常是没有默认边框的组件,例如面板和标签。由于其绘画代码的实现方式,某些其他组件可能无法在一些外观实现中与边框一起使用。有关边框的信息,请参见How to Use Borders

+0

很好的答案,非常全面。 +1 –

+0

非常感谢 - 这些信息真的很有帮助! – Susie

相关问题