如果你没有完全填写它,GridLayout是否不会遵守你指定的行数和列数?
我正在创建一个包含3行和4列的GridLayout。但是,我只添加了9个组件。它最终向我展示了3x3网格中的这9个组件,而不是3x4网格(第三行只有一个组件(和两个空格))。
答案 0 :(得分:29)
而不是3x4网格(第三行只有一个组件(和两个空格))。
然后你应该使用:
创建GridLayoutsetLayout(new GridLayout(0,4));
它告诉布局你不知道你有多少行,但你想要4列。因此,在移动到下一行之前,列将被填满。
无需空组件。
答案 1 :(得分:4)
只需用空项(如JLabel
)填充空单元格,例如:
class MyFrame extends JFrame
{
MyFrame()
{
setLayout(new GridLayout(3,4));
for (int i = 0; i < 9; ++i)
this.getContentPane().add(new JLabel(""+i));
for (int i = 0; i < 3; ++i)
getContentPane().add(new JLabel());
pack();
setVisible(true);
}
}
将它们布局为
0 1 2 3
4 5 6 7
9