Chcę zapisać plik przed zamknięciem aplikacji JavaFX.JavaFX: Stage close handler
jest to jak mam konfigurowania obsługi w Main::start
:
primaryStage.setOnCloseRequest(event -> {
System.out.println("Stage is closing");
// Save file
});
a kontroler dzwoni Stage::close
po naciśnięciu przycisku:
@FXML
public void exitApplication(ActionEvent event) {
((Stage)rootPane.getScene().getWindow()).close();
}
Gdybym zamknąć okno klikając czerwony X na granicy okna (normalny sposób), a następnie otrzymuję komunikat wyjściowy "Stage is closing
", co jest pożądanym zachowaniem.
Jednak po wywołaniu Controller::exitApplication
aplikacja zamyka się bez wywoływania programu obsługi (nie ma danych wyjściowych).
W jaki sposób można użyć kontrolera, który został dodany do primaryStage
?