GridLayout和行数和列数

时间:2011-04-13 20:04:29

标签: java swing grid-layout

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

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

2 个答案:

答案 0 :(得分:29)

  

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

然后你应该使用:

创建GridLayout
setLayout(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