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...