Je me demandais s'il y avait un moyen, en cliquant sur le "X", de laisser le programme exécuter du code avant de fermer le JFrame. La méthode setDefaultCloseOperation()
ne prend qu'un entier.
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Vous pourriez être intéressé par l'utilisation d'un WindowListener
. Le WindowListener
tutoriel .
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
int i=JOptionPane.showConfirmDialog(null, "Seguro que quiere salir?");
if(i==0)
System.exit(0);//cierra aplicacion
}
});
@Jeffrey a une bonne réponse, mais vous devriez considérer ce que vous essayez de faire. Si vous voulez vraiment faire quelque chose à la fermeture d'un cadre, alors un WindowListener est le chemin à parcourir. Cependant, si vous cherchez un endroit pour faire des tâches de nettoyage et d'arrêt gracieux, vous voudrez probablement un crochet d'arrêt à la place. En utilisant un WindowListener, le code ne sera déclenché, comme vous l'avez dit, que par l'utilisateur "cliquant sur le X". Mais que se passe-t-il si l'utilisateur démarre l'application au premier plan d'un terminal et la tue avec Ctrl + C? Que faire si l'utilisateur tue le processus à partir de la ligne de commande ou d'un gestionnaire de tâches?