Desidero salvare un file prima di chiudere la mia applicazione JavaFX.JavaFX: Stage close handler
Questo è il modo Sto installando il gestore in Main::start
:
primaryStage.setOnCloseRequest(event -> {
System.out.println("Stage is closing");
// Save file
});
E il controller chiamando Stage::close
quando si preme un tasto:
@FXML
public void exitApplication(ActionEvent event) {
((Stage)rootPane.getScene().getWindow()).close();
}
Se chiudo la finestra cliccando sul rosso X sul bordo della finestra (nel modo normale) quindi viene visualizzato il messaggio di output "Stage is closing
", che è il comportamento desiderato.
Tuttavia, quando si chiama Controller::exitApplication
l'applicazione si chiude senza richiamare il gestore (non c'è output).
Come posso fare in modo che il controller usi il gestore che ho aggiunto a primaryStage
?