Ich möchte eine Datei speichern, bevor ich meine JavaFX-Anwendung schließe. DieseJavaFX: Schließen der Stage-Prozedur
ist, wie ich die Handler in Main::start
einrichten:
primaryStage.setOnCloseRequest(event -> {
System.out.println("Stage is closing");
// Save file
});
Und die Controller Aufruf Stage::close
, wenn eine Taste gedrückt wird:
@FXML
public void exitApplication(ActionEvent event) {
((Stage)rootPane.getScene().getWindow()).close();
}
Wenn ich das Fenster schließe die roten klicken X am Fensterrand (der normale Weg) dann bekomme ich die Ausgabenachricht "Stage is closing
", was das gewünschte Verhalten ist.
Beim Aufruf von Controller::exitApplication
wird jedoch die Anwendung geschlossen, ohne den Handler aufzurufen (es gibt keine Ausgabe).
Wie kann ich veranlassen, dass der Controller den Handler verwendet, den ich zu primaryStage
hinzugefügt habe?