5

如果您没有完全填充它,GridLayout 是否会不遵守您指定的行数和列数?

我正在创建一个 3 行 4 列的 GridLayout。但是,我只添加了 9 个组件。它最终向我展示了 3x3 网格中的这 9 个组件,而不是 3x4 网格(第三行只有一个组件(和两个空白))。

4

2 回答 2

31

而不是 3x4 网格(第三行只有一个组件(和两个空白))。

然后,您应该使用以下方法创建 GridLayout:

setLayout(new GridLayout(0,4)); 

它告诉布局你不知道你有多少行,但你想要 4 列。因此,在移动到下一行之前,这些列将被填满。

不需要空组件。

于 2011-04-14T00:07:18.647 回答
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    
于 2011-04-13T20:10:02.273 回答