В настоящее время у меня есть SwingWorker, который отправляет HTTP-запрос, и я переопределяю метод done () SwingWorker для изменения содержимого в JFrame.Я хочу в основном удалить все и добавить новую панель элементов в JFrame в зависимости от значений, возвращаемых с сервера.
Теперь проблема, с которой я сталкиваюсь, заключается в том, что при вызове следующих методов в JFrame ниже:он ничего не удаляет из JFrame и не изменяет его содержимое, содержащееся в кадре.
//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.
Любые предложения / помощь будут высоко оценены.
Редактировать: Я думаю, что я собираюсь отлаживать больше, так как должно быть что-то еще идет не так.