JFrame удаление JPanel и добавление нового JPanel

В настоящее время у меня есть SwingWorker, который отправляет HTTP-запрос, и я переопределяю метод done () SwingWorker для изменения содержимого в JFrame. Я хочу в основном удалить все и добавить новую панель участников в JFrame в зависимости от значений, возвращаемых сервером.

Проблема, с которой я столкнулся, заключается в том, что когда я вызываю следующие методы в JFrame, он ничего не удаляет из JFrame и не меняет его содержимое, содержащееся в Frame.

//TODO: Investigate why JFrame content pane won't repaint.
f.removeAll();
//Pass the frame f reference only into MainDisplay, it doesn't actually do anything apart from allowing a class to add a JMenuBar on the JFrame.
f.add(new MainDisplay(f)); 
f.getContentPane().invalidate();
f.getContentPane().validate();
f.getContentPane().repaint();

Текущее исправление, которое у меня есть, приведено ниже, но я бы предпочел изменить содержимое JFrame, а не загружать новый.

f.dispose();
f=new ApplicationFrame();

Я просмотрел предыдущие ответы здесь и в Google, и некоторые состояния используют validate () или invalidate () при вызове repaint () для перерисовки JFrame.

Мы будем очень благодарны за любые предложения / помощь.

Edit: Я думаю, что собираюсь еще отладить, потому что должно быть что-то еще пошло не так.

5
задан unleashed 23 November 2011 в 19:57
поделиться