2012-02-16 2 views
12

Comment accéder à l'événement de clôture de l'application?Obtenir l'événement de clôture de l'application

Je veux obtenir l'application pour enregistrer toutes les opérations non enregistrées ou montrer à l'utilisateur un message "Êtes-vous sûr de fermer sans enregistrer toutes les données?" quelque chose comme ça.

Si cela peut être utile - l'application est un SingleFrameAplication en utilisant Swing.

Répondre

18

Vous pouvez utiliser un shutdown hook. Cela fonctionne pour Swing, AWT et même des applications de console.

Exemple:

Runtime.getRuntime().addShutdownHook(new Thread() 
{ 
    @Override 
    public void run() 
    { 
     //do your stuff 
    } 
}); 
+4

soyez prudent en utilisant des liens roseindia. S'il vous plaît lire http://balusc.blogspot.com/2008/06/what-is-it-with-roseindia.html Je recommanderais http://docs.oracle.com/javase/7/docs/api/java /lang/Runtime.html#addShutdownHook(java.lang.Thread) comme un lien à la place – Sean

+1

@Sean, merci pour l'avertissement! J'ai édité la réponse avec un lien plus légitime. –

2

Vous devez ajouter WindowListener à votre JFrame/JDialog, sur l'événement de clôture est là méthode publique void windowClosing(WindowEvent e) { exemple de code here

0

Vous pouvez utiliser sun.misc.Signal ou Runtime.getRuntime().addShutdownHook

More info

Questions connexes