Удаление JPanel из JFrame в NetBeans - PullRequest
0 голосов
/ 24 мая 2010

У меня есть несколько JPanels, которые содержат кнопки, метки и т. Д., Которые я хочу переключать с основного JFrame. В настоящее время я пытаюсь использовать метод this.add(JPanelname); и this.remove(JPanelname); с методами validate(); и repaint();

Проблема в том, что она добавит панель к JFrame, но не удалит ее. Я не уверен, как именно это сделать.

Ответы [ 2 ]

1 голос
/ 24 мая 2010

Возможно, вам следует использовать макет карты .

Или, может быть, вы должны использовать модальные JDialogs. Таким образом, каждый раз, когда вы нажимаете на «widjet», появляется новое окно. Затем, когда вы закрываете диалоговое окно, вы возвращаетесь в свой основной фрейм.

0 голосов
/ 24 мая 2010

Если вы постоянно переключаетесь между JPanels, тогда JTabbedPane может быть правильным выбором. При добавлении или удалении JPanel не должно быть необходимости вызывать «validate» или «repaint». У вас установлен менеджер раскладки? Вы обязательно вызываете add / remove только в потоке событий пользовательского интерфейса? Кроме того, обычно не вызывается «validate ()», а «invalidate ()», чтобы сделать контейнер недействительным для обновлений.

...