Frage

Ich habe einen Antrag gemacht, und ich brauche einige Optionen vor dem Beenden zu speichern. (So etwas wie Fenster Dimension, ..., wird diese in einer Datei geschrieben werden.)

Der Hauptrahmen gesetzt diese:

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Wie kann ich sparen Optionen, die interessiert mich? (Vor natürlich Verlassen)

Danke!

War es hilfreich?

Lösung

Wenn Sie wollen einfach nur etwas tun, wenn die Anwendung heruntergefahren wird, können Sie die Shutdown-Haken mit diesem Code:

    Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {

        public void run() {
            // Do what you want when the application is stopping
        }
    }));

Allerdings wird diese ermöglichen es Ihnen nicht nicht in der Nähe Fenster. Wenn Sie etwas zu überprüfen, bevor wirklich verlässt, dann können Sie die windowClosing Ereignis:

addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
        // Do what you want when the window is closing.
    }
});

Beachten Sie, dass die erste Lösung - den Shutdown-Hook mit - dem Vorteil hat, dass es nicht zu einem Fenster Ereignisse verbunden ist, und wird sogar ausgeführt werden, wenn der Antrag durch ein anderes Ereignis gestoppt wird (außer natürlich, wenn der Java-Prozess brutal getötet wird).

Andere Tipps

Auch die folgende Wille Hilfe sein.

  1. Zuerst u benötigen eine Eigenschaftsdatei zu lesen. See doc

    Properties properties = new Properties();
    try {
      properties.load(new FileInputStream("filename.properties"));
    } catch (IOException e) {
      System.err.println("Ooops!");
    }
    
  2. Second Add Event-Handler zu Ihrem Fenster, die Ihre Daten in Immobilien file.All sparen, dass Sie nur in Eigenschaften Instanz setzen speichern müssen und bewahren Sie sie an der Ausfahrt

     addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        try {
         properties.store(new FileOutputStream("filename.properties"), null);
        } catch (IOException e) {
        }
      }
    });
    

Das ist alles, wenn ich verstanden würden Sie korrigieren)

Sie können sich registrieren ein Window und speichern Sie Ihre Optionen im window Methode.

Und natürlich

frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

Nicht sicher gilt dies für Ihre Situation, aber es kann auf andere, die auf diesen Thread surfen. Meine Anwendung hat einen main () und am Ende hat die while (! Shell.isDisposed) Schleife. Wenn die Anwendung ausgeführt wird, dass Schleife geht, und wenn die Anwendung der Schlaufenende geschlossen und es fällt auf, was in der Hauptmethode, nachdem es immer ist. Dies ist, wo ich einen Scheck für setzen, wenn der Editor ist schmutzig und wenn die Voreinstellungen geändert haben und diejenigen Bedingungen zu behandeln. Meine Methode zum Schließen der Datei angehängt verfügt die Shell und ruft die closeCurrent () -Methode, aber wenn jemand das ‚x‘ Fenster schließen klickt Symbol fällt es hier und ich noch einmal überprüfen, ob etwas schmutzig ist und speichern, wenn es nötig ist.

while (!shlCpbtool.isDisposed()) {
        if (!display.readAndDispatch()) {
            display.sleep();
        }
    }
    // exit
    if(dirty){
        closeCurrent();
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top