Javafx 2 当主阶段关闭时,如何关闭所有阶段?

Javafx 2 当主阶段关闭时,如何关闭所有阶段?,javafx-2,Javafx 2,我有一个应用程序,当发生异常时调用以下代码——也就是说,它位于“try/catch”的“catch”中。它仅仅创建了一个“弹出式”窗口,告诉用户输入一个int Stage dialogStage = new Stage(); dialogStage.initModality(Modality.WINDOW_MODAL); dialogStage.setScene(new Scene(VBoxBuilder.create(). children(new Text("Please enter an

我有一个应用程序,当发生异常时调用以下代码——也就是说,它位于“try/catch”的“catch”中。它仅仅创建了一个“弹出式”窗口,告诉用户输入一个int

Stage dialogStage = new Stage();
dialogStage.initModality(Modality.WINDOW_MODAL);
dialogStage.setScene(new Scene(VBoxBuilder.create().
children(new Text("Please enter an integer."), new Button("Ok.")).
alignment(Pos.CENTER).padding(new Insets(5)).build()));
dialogStage.show();
唯一的问题是,即使主阶段(即公共void start(stage primaryStage)中的参数)已关闭,阶段也会延迟

我试过什么了

我将dialogstage定义为类变量,从而使它在整个类中可见。然后我实现了以下代码:

primaryStage.setOnCloseRequest((new EventHandler<WindowEvent>(){

        @Override
        public void handle(WindowEvent arg0) {
                            arg0.consume();
            try
            {
             dialogStage.close();

                            }
            catch(Exception ex)
            {
                System.out.print(ex.getMessage()+"\r\n");
            }

        }
    }));
}
primaryStage.setOnCloseRequest((新的EventHandler(){
@凌驾
公共无效句柄(WindowEvent arg0){
arg0.consume();
尝试
{
dialogStage.close();
}
捕获(例外情况除外)
{
System.out.print(例如getMessage()+“\r\n”);
}
}
}));
}
当用户试图退出主应用程序时,dialogstage关闭,但实际上它并没有达到我的目的:当您试图关闭主阶段时,只有dialogstage关闭

这也是一个美学上令人不快的解决方案,因为我不想让全班同学都知道这个愚蠢的对话框,它只位于一个try/catch中,可能永远不会被使用


我想知道是否有一个简单的解决方案,告诉dialogstage在主阶段关闭时关闭,并且不必在try/catch之外编写太多代码

在主舞台上的事件OnCloseRequest上,执行
平台。退出
()