2013-07-30 34 views
1

我正在开发Java中的GUI。我有几个问题需要我帮助,希望你们中的一些人能够提供帮助。如何删除JFrame中的空白空间

您可能需要下面的图片:

enter image description here

1 ..条目的之间的空间:我想它删除。现在,每个条目都是一个带有GridLayout为2,1的JPanel。每行有另一个JPanel(line1和line2)。默认情况下,第2行是隐藏的,只应在点击编辑按钮时显示,然后再次点击时隐藏。我可以使用setVisible()更改可见性。但它创造了这么大的空间。

[求助] 2. Line2有一个FlowLayout,我怎样才能让它左对齐?

3.每个条目都是类(称为“预设”)并存储在名为“presetListing”的类变量数组中。当我点击新的分支按钮时,我创建了一个容量为+1的新阵列,将所有旧的预设转换并在最后一个空间中创建一个新的预设。我需要做什么才能让新条目出现在GUI中?我尝试将它添加到JPanel然后验证(),没有工作。

希望someoene在那里将能够帮助我,在此先感谢!

编辑: 这里是#3代码:

private void newBranch(){ 
    Preset[] tempBranches = new Preset[branches.length + 1]; 

    for (int i = 0; i < branches.length; i++){ 
     tempBranches[i] = branches[i]; 
    } 

    tempBranches[branches.length] = new Preset(); 
    branches = tempBranches; 

    pane = new JPanel(); 
    pane.setLayout(new GridLayout(branches.length, 1)); 
    for (int i = 0; i < branches.length; i++){ 
     pane.add(branches[i]); 
    } 

    scroller = new JScrollPane(pane); 
    this.add(scroller, BorderLayout.CENTER); 

    this.repaint(); 
    this.validate(); 
} 
+2

#1我想你需要一个更精细的网格。 #2最好使用borderlayout-manager而不是flowmanager。 #3您需要向我们展示一些您的代码,以便我们可以查看它。 – bas

+3

'GridLayout'使每​​个组件具有相同的大小。 'GridBagLayout'会更加灵活。 – kiheru

+0

你是什么意思的更好的网格? #2的解决方案奏效,非常感谢!我现在会找到代码。 – Kryptos

回答

0

这应该工作与子面板,以填补面板:

for (int i = 0; i <= _listElements.size(); i++) { 
_panel.add(_listElements.get(i), new GridBagConstraints(0, i, 1, 1, 0, 0, 
     GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, 
     new Insets(0, 0, 0, 0), 0, 0)); 
}