Как удалить определенный элемент из JPanel, используя BorderLayout / GroupLayout? - PullRequest
1 голос
/ 10 июня 2011

Мне нужно удалить Component в Center из JPanel, но после некоторых попыток победить не удастся.

Я попробовал метод здесь:

Удаление элемента CENTER из JPanel с помощью BorderLayout

Но метод ответа выдает ошибку времени компиляции:

Type mismatch: cannot convert from LayoutManager to BorderLayout

Я неверно истолковал ответ?

Кроме того, мне также интересно, могу ли я обновить только один компонент из GroupLayout. Может кто-нибудь сказать мне, как это сделать?

РЕДАКТИРОВАТЬ: @mre: Вот код:

BorderLayout layout = panel.getLayout();
panel.remove(layout.getLayoutComponent(BorderLayout.CENTER));

Что в основном совпадает с ссылкой.

Спасибо всем!

1 Ответ

5 голосов
/ 10 июня 2011

Вы должны уменьшить менеджер компоновки до BorderLayout:

BorderLayout layout = (BorderLayout) panel.getLayout();

Но если вы знаете, какой компонент находится в центре, вы можете просто удалить его:

panel.add(myComponent, BorderLayout.CENTER);
...
panel.remove(myComponent);
...