2013-12-04 4 views
3

То, что я пытаюсь сделать, это сделать кнопку, которая закончит фрейм, а также закончить программу, но в этом случае разрешить другим частям JOGL выполнять свои собственные функции. Например, когда я использую стандартную кнопку закрытия для JFrame с EXIT_ON_CLOSE, она закончит программу, но позволит JOGL выполнить очистку. И если я сделаю System.exit(0), это не позволит очистить от JOGL.Закрыть JButton в программе конца JFrame неадекватно

По существу:

Пользовательские Закрыть JButton ===> Чистоплотный конец приложения.

+0

Вы пробовали просто называть 'JFrame # dispose'? Или с помощью 'WindowListener' и отслеживать событие' windowClosing' для закрытия других ресурсов? – MadProgrammer

+0

Jut имеет ваш близкий JButton вызывает процедуры очистки, а затем System.exit (0) ... – Sinkingpoint

ответ

1

Как об использовании WindowAdapter, чтобы переопределить событие WindowClosing

this.addWindowListener(new WindowAdapter() { 
     public void windowClosing(WindowEvent ev) { 
      //add your logic for closing here 
     } 
}); 
0

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

Но System.exit() не так резко, как вы предполагаете.

Он называет все крючки завершения, прежде чем заканчивать программу.

Распоряжаться свои ресурсы, вы можете добавить выключение крючок для JOGL:

Runtime.getRuntime().addShutdownHook(new Thread() { 
    @Override 
    public void run() { 
     animator.stop(); 
     frame.dispose(); 
    } 
}); 

завязывать очистки к кнопке Handler или окно хорошо, если вы знаете, все выходы. Крюк выключения гарантирует, что ваша очистка будет вызвана, однако вы покинете приложение.

Просто следите за тем, чтобы ваш крюк выключения был чистым и простым.

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

  • Нет связанных вопросов^_^