【问题标题】:How can I get the size of a container gap used by GroupLayout?如何获取 GroupLayout 使用的容器间隙的大小?
【发布时间】:2015-03-20 13:22:18
【问题描述】:

我有很多JPanelGroupLayout,我使用addContainerGap() 在边框上添加间隙。此外,我还有一个具有其他布局的面板 (BorderLayout),我想在其容器中添加与组布局面板相同的间隙(我将通过空边框添加它)。

所以我的问题是,我怎样才能获得容器间隙的大小?还是使用其他方法更好?

我不知道如何获取容器间隙的大小,所以我唯一能想到的是将面板添加到具有组布局的面板中,然后在其中添加容器间隙。

【问题讨论】:

  • 请投反对票的人解释为什么要这么做。如果你不告诉我哪里出了问题,我该如何改进或修复它?
  • 这个问题写得很糟糕,也许这与它有关。我正在搜索有关grouplayout容器间隙的信息并被发送到这里,这完全没用,因为这个问题是关于如何使用BorderLayout的。
  • 是的,我不太擅长使问题易于阅读。现在的标题更准确地说明了这个问题是关于什么的。但是您对 BorderLayout 的看法是错误的,我知道如何使用它。这是问题的上下文,而问题实际上仅与 GroupLayout 有关。感谢您的评论和编辑。

标签: java swing layout-manager border-layout grouplayout


【解决方案1】:

对于BorderLayout 使用:

  1. new BorderLayout(hgap,vgap) - 或以下两者的组合:
  2. BorderLayout.setHgap(int)
  3. BorderLayout.setVgap(int)

编辑

但这并没有回答如何获得GroupLayout..使用的间隙大小。

查看GroupLayout.getLayoutStyle(),然后查看诸如LayoutStyle.getPreferredGap(JComponent,JComponent,LayoutStyle.ComponentPlacement,int,Container) 之类的方法,当然请注意,首选间隙可能因布局组件而异。

例如,您可以使用下面的代码来获取北边界的间隙大小:

LayoutStyle ls = gl.getLayoutStyle();

// Can be null if not already set.
if (ls == null) {
    // If not set, get the default style.
    ls = LayoutStyle.getInstance();
}

// What is the size of north gap if there is a JLabel?
System.out.format("North gap: %d", ls.getContainerGap(new JLabel(), SwingConstants.NORTH, null));

【讨论】:

  • 但这并没有回答如何获得 GroupLayout 使用的间隙大小,因为我希望它们相同。
  • 谢谢,这正是我想要的。我在您的答案中添加了一个示例,以便其他人可以更好地了解如何使用。
猜你喜欢
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 1970-01-01
  • 2020-09-17
  • 1970-01-01
  • 1970-01-01
  • 2016-07-09
  • 2014-09-05
相关资源
最近更新 更多