2013-06-01 2 views
6

У меня есть приложение swing с JPanel, которое действует как порт представления для моего приложения. Я хочу, чтобы мое приложение удаляло все компоненты внутри порта просмотра, когда пользователь нажимает на элемент меню или кнопку и создает в нем новые компоненты. Я знаю, как удалить компонент из внутри контейнера, не ясно, какой компонент находится внутри вьюпорте в настоящее время, поэтому я думаю, что я не могу использовать ниже код:Как удалить все дочерние компоненты контейнера?

viewport.remove(component); 
viewport.revalidate(); 
viewport.repaint(); 

мои вопросы:

  1. Как удалить все компоненты внутри контейнера, не зная, какой компонент удалить?

  2. Этот способ устранения всех компонентов и создания других компонентов и их правильного ввода в порт просмотра?

ответ

7

Прямой ответ на ваш вопрос - просто позвонить removeAll() на контейнер. Лучший ответ (хотя я думаю, что ваш вопрос является примером XY problem) заключается в использовании CardLayout и просто замене компонентов через этот макет.

4

Взгляните на Removeall() метод

Удаляет все компоненты из этого контейнера. Этот метод также уведомляет менеджера компоновки об удалении компонентов из макета этого контейнера с помощью метода removeLayoutComponent.

Смежные вопросы