JavaFX Bühne, close-Ereignis-handler

Habe ich ein Stage in JavaFX, die geschlossen werden können, auf mehrere Arten, entweder durch klicken auf das rote (X) oder a-Taste die Anrufe stage.close()

Unabhängig davon, wie die Bühne ist geschlossen, ich möchte eine Aktion ausführen, bevor (oder so) ist es geschlossen.

Wenn ich den folgenden code verwenden:

myStage.setOnCloseRequest( event -> {System.out.println("Closing Stage");} );

dann der handler wird aufgerufen, wenn ich auf die (X) aber nicht, wenn ich rufe myStage.close()

Dies ist das gleiche Problem, das diese Frage spricht über (mit ein wesentlicher Unterschied):
JavaFX: Stage close-handler

Der Unterschied ist, dass er will, nennen eine Prozedur, wie die gesamte Anwendung geschlossen wird, und daher außer Kraft setzen können Application's stop() Methode. Allerdings bin ich nicht schließen, dass die gesamte Anwendung nur eine Phase. Und Stage keinen stop() - Methode zu überschreiben.

Vielen Dank für jede Hilfe.

  • Sie können setOnHiding wenn Sie nicht möchten, um zu verhindern, dass die Bühne schließen.
  • Danke. So eine Bühne ist auch ausgeblendet, da es geschlossen ist? Und, würde dieses event auch aufgerufen werden, jedes mal, wenn das Fenster verborgen oder minimiert ist?
  • Aus der Bühne-Dokumentation: "Verwenden Sie die showAndWait () - Methode, wenn Sie brauchen, um den Anrufer blockieren, bis das modale Stufe ausgeblendet (geschlossen)." 'Versteckt' und 'geschlossen' sind Synonyme, wenn es um JavaFX-Phasen und Windows.
  • Super, danke!
InformationsquelleAutor skrilmps | 2017-06-14
Schreibe einen Kommentar