Мое приложение отлично работает на Eclipse IDE, но после его экспорта слава не будет перерисовываться. я пытаюсь восстановить выложите из JFrame, удалив два JPanels и добавить их снова с большим количеством панелей & здесь мой код:java-приложение GUI отвечает после экспорта
приложение сначала вызывает buildGUI()
private void buildGUI(){
setTitle("MyApp");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setContentPane(new BackGroundImagePanel());
setResizable(false);
getContentPane().setLayout(new GridBagLayout());
c = new GridBagConstraints();
/*
*set up GridBagConstraints and add the two panels
*/
pack();
setSize(700, 700);
revalidate();
setLocationRelativeTo(null);
}
После ввода пользователя сделать некоторые расчеты & вызова reBuildGUI():
private void reBuildGUI(){
//Clean the frame.
remove(firstPanel);
remove(secondPanel);
//removeAll() doesn't work for me;
validate();
repaint();
/*
*set up GridBagConstraints and more panels
*/
pack();
setSize(700, 700);
repaint();
validate();
}
снова, работа perfict приложения на IDE, но не в качестве самостоятельной баночки, после вызова reBuildGUI() ничего не случится! Пробовал использовать validate(), revalidate() & pack() в разных заказах без усиления?
Не знаете, как кто-нибудь может ответить на этот вопрос без вашего размещения [mcve], кроме как убедиться, что вы получаете все изображения как ресурсы класса, а не файлы. Если вам по-прежнему нужна помощь, то работайте над отключением ошибки и отправьте свой MCVE. –
Не используйте 'setSize()' * и * 'pack()', используйте 'setSize()', если вы хотите, чтобы 'JFrame' был конкретным размером * или * использовал' pack() ', если вы хотите 'JFrame' должен быть наименьшим по размеру, чтобы соответствовать его дочерним компонентам. – MasterBlaster