2009-09-03 45 views
0

我想在Java GUI中显示某些文件的状态。每个文件都有一个标签和一个按钮,按钮的颜色代表文件的状态,点击可执行各种操作。所有这些都在起作用,问题是他们没有正确显示。我希望它出现具有空单元格的Java网格布局

[Label 1] [File 1] [File 2] [Label 2] 
[Label 3] [File 3] [File 4] [Label 4] 
etc. 

要做到这一点我已经做了面板采用了网格布局

new JPanel(new GridLayout((list.size() + 1) /2,4,3,3)); 

这工作,除非有奇数个文件。然后网格调整自己,例如用3个文件,我将得到一个2x3网格,所以标签2显示在下一行。如果我检查一个奇数,然后在所有其他控件之后添加2个新的JPanel,它会正确显示,但我想知道是否有更好的方法来做到这一点。

感谢

回答

1

看着JavaDoc的GridLayout.setColumns,看起来没有指定行数可以治愈你的弊病。

将此布局中的列数设置为指定的值。 如果构造函数或setRows方法指定的行数不为零,则设置列数对布局没有影响。在这种情况下,布局中显示的列数由组件总数和指定的行数决定。 (我的重点)

试试这个:

new JPanel(new GridLayout(0,4,3,3)); 
+0

谢谢,解决了它。 – 2009-09-03 09:16:39

-1

我想知道是否有这样做的更好的方式 。

是的,使用MiGLayout

+0

对不起,不是一个真正的选择。首先,该网站被我工作的防火墙阻止,我无权安装它。它必须是标准java库中的东西。 – 2009-09-03 08:44:54

+0

我对您的工作条件表示哀悼...... – 2009-09-03 09:13:24