如果您没有完全填充它,GridLayout 是否会不遵守您指定的行数和列数?
我正在创建一个 3 行 4 列的 GridLayout。但是,我只添加了 9 个组件。它最终向我展示了 3x3 网格中的这 9 个组件,而不是 3x4 网格(第三行只有一个组件(和两个空白))。
如果您没有完全填充它,GridLayout 是否会不遵守您指定的行数和列数?
我正在创建一个 3 行 4 列的 GridLayout。但是,我只添加了 9 个组件。它最终向我展示了 3x3 网格中的这 9 个组件,而不是 3x4 网格(第三行只有一个组件(和两个空白))。
而不是 3x4 网格(第三行只有一个组件(和两个空白))。
然后,您应该使用以下方法创建 GridLayout:
setLayout(new GridLayout(0,4));
它告诉布局你不知道你有多少行,但你想要 4 列。因此,在移动到下一行之前,这些列将被填满。
不需要空组件。
只需用空项目(如 a )填充空单元格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