设置水平和垂直边距

16

如何在面板中设置水平和垂直边距?(就像HTML中的style="margins:30px"一样)


1
正如其他人提到的那样,你应该只是使用边框(在Swing中有一个EmptyBorder类可以实现这一点)。然而,我不建议在面板中硬编码边距的大小,特别是使用像素(其大小可以根据显示器分辨率的不同而发生很大变化)。最好使用javax.swing.LayoutStyle来计算正确的边距。或者更好的办法,使用一个布局管理器来代替手动计算。 - jfpoilpret
5个回答

35

setBorder(BorderFactory.createEmptyBorder(int top, int left, int bottom, int right));

更多细节请参考BorderFactory的文档


(该方法用于设置一个空边框,并指定上下左右四个方向的宽度。具体使用方法可参考BorderFactory文档。)

2
为什么你在 Kleopatra 提供答案超过两天后,将自己的回答标记为“正确”? - Andrew Thompson
6
@Andrew Thompson,这是我最近发现的最佳答案,因此我更新了答案。 - Suhail Gupta

6

我不懂 HTML,所以只能猜测可能的等效方式 :-)

  • 要在组件的边界矩形和其内容之间设置一些空间,需要设置的属性是其 Border
  • 容器中不同组件之间的间距由 LayoutManager 控制(已经提到)。具体实现取决于可配置的细粒度程度。

0

0

这高度取决于您使用的面板类型。 如果这是指swing,您可以在其上放置Gridbaglayout,并像this example中那样指定插入。


0

为了在JComponents之间创建基本的“间隙”,可以使用LayoutManagers (在容器内布置组件)

{{link2:BorderLayout(int horizontalGap,int verticalGap)}}

{{link3:GridLayout(int rows,int cols,int hgap,int vgap)}}

对于最复杂的GUI,您需要:

1/ 使用多个JPanel(每个JPanel都有不同的LayoutManager)

2/ 通过使用{{link4:如何使用GridBagLayout}}(通过使用具有不同LayoutManegars的多个JPanel ...)

3/ 使用一些自定义的LayoutManager


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