Si vous souhaitez exécuter systématiquement un script au moment de la fermeture d'une fenêtre (croix rouge), vous devez gérer les événements spécifiques de celle-ci. Voici un exemple avec l'utilisation d'une classe controleur
:
public class MainFenetre extends Observable {
protected JFrame fenetre;
Fenetre fenetre;
MainFenetre mf;
public MainFenetre() {
mf = this;
fenetre = new JFrame();
fenetre.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
fenetre.addWindowListener (new WindowAdapter() {
public void windowClosing(WindowEvent e){
setChanged();
((Observable) obj).notifyObservers("quitter");
}
});
}
Dans cet exemple, la demande de fermeture de la fenêtre, par clic sur la croix, déclenchera un événement dans le contrôleur, qui pourra être traité ainsi :
public class Controleur implements Observer {
MainFenetre fenetre = new MainFenetre();
public Controleur() {
/*
* Lancement de l'ecoute des evenements de la fenetre
*/
fenetre.addObserver(this);
}
public void update(Observable arg0, Object pCommand) {
String commande = (String) pCommand;
switch (commande) {
case "quitter":
close();
break;
}
}
Il reste à définir ce que vous voulez faire dans la fonction close()
, à écrire...