如何获得GroupLayout使用的容器间隙的大小?

时间:2015-03-20 13:22:18

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

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

所以我的问题是,如何才能获得容器间隙的大小?或者使用其他方法更好?

我不知道如何获得容器间隙的大小,所以我唯一能想到的就是在面板中添加一个具有组布局的面板,并在那里添加容器间隙。

1 个答案:

答案 0 :(得分:3)

BorderLayout使用:

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

      

    但这并没有回答如何获得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));