Préface: Ceci est le premier vrai programme de swing que j'ai fait.java swing programme ne se ferme pas après que disposer est appelé sur la dernière fenêtre
J'ai un programme de swing, où un JButton est censé quitter le programme. Ce bouton déclenche this.dispose() ;. Lorsque je clique sur ce JButton, fait faire disparaître complètement la fenêtre, mais en regardant le débogueur, le programme lui-même est toujours en cours d'exécution.
Ma principale méthode consiste seulement:
public static void main (String[] args)
{
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new StartupGui().setVisible(true);
}
});
}
Mon bouton de sortie ressemble bouton d'action ressemble à:
private void exitButtonActionPerformed(java.awt.event.ActionEvent evt)
{
this.dispose();
}
J'ai aussi essayé le bouton de sortie:
private void exitButtonActionPerformed(java.awt.event.ActionEvent evt)
{
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
dispose();
}
});
}
En regardant le débogueur après avoir appuyé sur le bouton de sortie, je vois ce qui suit (et seulement ce qui suit):
Daemon Thread [AWT-XAWT] (running)
Thread [AWT-Shutdown] (running)
Thread [AWT-EventQueue-0] (running)
Thread [DestroyJavaVM] (running)
Quelqu'un peut-il m'indiquer dans la bonne direction pourquoi le programme ne s'arrête pas après ce point? J'ai fait quelques recherches mais je n'ai rien trouvé jusqu'ici. Si vous avez besoin de plus d'informations, laissez-moi savoir
Merci :)
quelle version de jdk utilisez-vous?les anciennes versions ne s'arrêtent pas lorsque toutes les fenêtres sont éliminées. – mdma
$ java -version donne "build 1.6.0_20-b02". Je cours ceci sur une machine Arch Linux 64 bits. – vimalloc