Я хочу сохранить файл перед закрытием приложения JavaFX.
Вот как я настраиваю обработчик в Main::start
:
primaryStage.setOnCloseRequest(event -> {
System.out.println("Stage is closing");
// Save file
});
И контроллер, вызывающий Stage::close
при нажатии кнопки:
@FXML
public void exitApplication(ActionEvent event) {
((Stage)rootPane.getScene().getWindow()).close();
}
Если я закрою окно, щелкнув по красному X на границе окна (обычным способом), я получу выходное сообщение "Stage is closing
", что является желаемым поведением.
Однако при вызове Controller::exitApplication
приложение закрывается без вызова обработчика (нет выхода).
Как я могу заставить контроллер использовать обработчик, который я добавил в primaryStage
?