面板未添加到主框架

时间:2011-11-08 09:36:14

标签: java swing gridbaglayout

我有一个主框架和3个面板。我想将这3个面板添加到主框架中。但是,其中只有2个被添加。第三个不是。我无法弄清楚原因。有人可以帮忙吗?

        setLayout(new GridBagLayout());
        GridBagConstraints gbc=new GridBagConstraints();
        gbc.gridwidth=GridBagConstraints.REMAINDER;
        gbc.gridheight=GridBagConstraints.RELATIVE;
        gbc.anchor=GridBagConstraints.NORTHWEST;
        gbc.fill=GridBagConstraints.BOTH;
        gbc.weightx=gbc.weighty=1;      
        add(topPanel1, gbc);
        add(bottomPanel1, gbc);
        gbc.gridheight=GridBagConstraints.REMAINDER;
        add(buttonsPanel, gbc);

上面的代码是框架的构造函数。

2 个答案:

答案 0 :(得分:1)

您应根据所需的布局设置gridxgridy值。 例如。如果要垂直布局组件,请执行以下操作:

gbc.gridx=0;
gbc.gridy=0;
add(topPanel1, gbc);
gbc.gridy++;
add(bottomPanel1, gbc);
gbc.gridy++;
add(buttonsPanel, gbc);

如果您未设置gridx/y值,则行为未指定(有时可能有效)。

答案 1 :(得分:1)

如果要逐个添加三个面板,则必须删除gbc.gridheight=GridBagConstraints.RELATIVE;语句。