JavaFx:由于辅助打开窗口,我的主窗口如何要求确认关闭

时间:2017-10-12 22:02:01

标签: java javafx confirmation

在我的应用中,有一个主窗口和一个辅助功能可以进行一些更改。当用户想要关闭应用程序(=主窗口)时,我想向用户询问关闭更改的辅助窗口的确认,以避免丢失更改。

此代码在我的主要课程上。

我的问题是,如果辅助窗口是打开的,我无法从我的主课程中查看。

注意:正在我的maincontroller类上创建辅助窗口。

谢谢!

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {

        Parent root = FXMLLoader.load(getClass().getResource("Main.fxml"));

        Scene scene = new Scene(root);
        scene.getStylesheets().add(getClass().getResource("style.css").toExternalForm());
        primaryStage.getIcons().add(new Image("image.png"));
        primaryStage.setTitle("Κάβα ποτών");
        primaryStage.setScene(scene);
        primaryStage.show();
        primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {
            @Override
            public void handle(WindowEvent event) {
            event.consume();
            closing();
            }
        });

    }

    public void closing() {
        //if(the secondary window is closed)
              //Platform.exit();
        //else
              //ask confirmation with confirm alert
    }

    public static void main(String[] args) {
        launch(args);
    }  
}

1 个答案:

答案 0 :(得分:1)

使用isShowing方法确定是否已打开SecondaryStage

要使用它,您应该在创建舞台时为变量指定SecondaryStage,并通过将其设为公开或提供getter来提供对它的访问权。

And this is how to access controller from your Main class.

希望它有所帮助。