SetVisible (false) изменяет компоновку моих компонентов в моей панели

Как мне сделать так, чтобы субпанели в моей основной панели оставались на месте, когда я делаю одну из субпанелей невидимой?

Как я выгляжу:

[ (Panel1) (Panel2) (Panel3) (Panel4) ]

Когда я делаю panel3.setVisible ( false) это выглядит так:

[      (Panel1) (Panel2) (Panel4)     ]

Я бы хотел, чтобы это выглядело так:

[ (Panel1) (Panel2)          (Panel4) ]

Я использую GridBagLayout, и мое объявление mainPanel выглядит так:

final JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();

и я добавляю новую панель, например:

final JTextField valueTextField = new JTextField();
valueTextField.setPreferredSize(new Dimension(80, 25));
valueTextField.setName("Value");
c.gridx =0;
panel.add(valueTextField, c);

При необходимости я предоставлю больше кода, и мне все равно, какой макет я использую, если он дает мне то, что я хочу.

6
задан Michael Petrotta 26 May 2011 в 15:54
поделиться