消除面板上复选框之间的巨大间隙

时间:2014-12-28 23:16:59

标签: java swing layout-manager grid-layout jtabbedpane

它非常基本的用户界面,但是我无法设置JCheckBox按钮,以便它们紧接着(垂直)放置,没有任何间距。我如何减少下面看到的间距?

JPanel debugDrawPanel = new JPanel(new GridLayout(0,1));         
JPanel eastPanel = new JPanel(new GridLayout(1,0));
JTabbedPane tab = new JTabbedPane();

click = new ClickPanel(this);

setSettings(new Settings());

for (Setting setting: getSettings().getAll()){

    JCheckBox checkBox = new JCheckBox(setting.name);
    checkBox.setName(setting.name);
    checkBox.addItemListener(new CheckBoxItemListener(this));
    debugDrawPanel.add(checkBox);
}

tab.addTab("Object Parameters", click);
tab.addTab("Debug Draw", debugDrawPanel);

screenshot

2 个答案:

答案 0 :(得分:4)

如果我没记错的话,那是因为你的布局!

GridLayout将你的windowsize分成相等的部分,所以我认为你应该取消设置你的窗口大小并使用pack(),或者你可以切换到不同的布局。

(我假设您的窗口尺寸是或最小尺寸设置在某处)

答案 1 :(得分:4)

最小垂直尺寸似乎是由另一个标签的内容设置的。解决此问题的一种方法是在将带有边框布局的面板放入选项卡式窗格之前,将GridLayout放在PAGE_START的{​​{1}}中。

enter image description here

  • BorderLayout的面板有橙色BG。
  • GridLayout的面板有一个黄色BG。

BorderLayout