У меня есть Controller.java для Scene.fxml и ControllerSettings.java для WindowSettings.fxml. В Controller.java создать новое всплывающее окно (без диалога) с следующим способом:Как закрыть новое всплывающее окно из контроллера в JavaFX
@FXML
public void handleSubmenuSettings(ActionEvent event) throws IOException {
Stage stage;
Parent root;
ControllerSettings controller;
stage = new Stage();
FXMLLoader loader = new FXMLLoader(getClass().getResource("WindowSettings.fxml"));
root = (Parent) loader.load();
controller = (ControllerSettings) loader.getController();
stage.setScene(new Scene(root));
stage.setTitle("Settings");
stage.initModality(Modality.APPLICATION_MODAL);
stage.setResizable(false);
stage.initOwner(submenuSettings.getScene().getWindow());
stage.showAndWait();
stage.setOnCloseRequest(e -> {
e.consume();
controller.saveSettings();
stage.close();
});
}
Я хочу, чтобы сохранить настройки при закрытии нового всплывающего окна, но это не работает с stage.setOnCloseRequest.