Панель не добавляется в основной кадр - PullRequest
1 голос
/ 08 ноября 2011

У меня есть основная рама и 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 ]

1 голос
/ 08 ноября 2011

Вы должны удалить оператор gbc.gridheight=GridBagConstraints.RELATIVE;, если хотите добавить три панели одну за другой.

1 голос
/ 08 ноября 2011

Вы должны установить значение gridx или gridy, в соответствии с желаемой раскладкой. Например. если вы хотите расположить компоненты по вертикали, сделайте что-то вроде этого:

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

Если вы не установите значения gridx/y, поведение не будет определено (иногда оно может работать).

...