2016-08-04 3 views
-1

Мое приложение отлично работает на 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() в разных заказах без усиления?

+3

Не знаете, как кто-нибудь может ответить на этот вопрос без вашего размещения [mcve], кроме как убедиться, что вы получаете все изображения как ресурсы класса, а не файлы. Если вам по-прежнему нужна помощь, то работайте над отключением ошибки и отправьте свой MCVE. –

+1

Не используйте 'setSize()' * и * 'pack()', используйте 'setSize()', если вы хотите, чтобы 'JFrame' был конкретным размером * или * использовал' pack() ', если вы хотите 'JFrame' должен быть наименьшим по размеру, чтобы соответствовать его дочерним компонентам. – MasterBlaster

ответ

0

Судно на воздушной подушке: вы были правы, кода недостаточно, извините, но я бы вставлял страницы кода и не хватило бы для его отладки.

здесь устранение неисправностей: - направление регистратора для входа в файл (с помощью обработчика файлов). - обнаружено место остановки регистратора. - добавлены мелкие & лучшие записи журнала, пока не найдете ошибку.

ошибка была хоронили далеко глубоко внутри другого метода класса в этой строке:

addOnImage = ImageIO.read(getClass().getClassLoader().getResource("images/AddTextOn.png")); 

фактическое имя файла было «ADDTextOn.png», но Eclipse, был в состоянии прочитать его как «AddTextOn.png», а JRE не было, но ничего не происходило, чтобы указывать на какие-либо ошибки, программа просто ничего не делала.

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