gpt4 book ai didi

javafx-2 - 当主要阶段关闭时,如何关闭所有阶段?

转载 作者:行者123 更新时间:2023-12-04 13:41:56 25 4
gpt4 key购买 nike

我有一个应用程序,当发生异常时,我在其中调用以下代码-也就是说,它位于“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();

唯一的问题是,即使主级(即public 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");
}

}
}));
}

这种“工作方式”是,当用户尝试退出主应用程序时,对话框阶段关闭了,但是,它实际上并没有达到我的预期:当您尝试关闭主要阶段时,仅对话框阶段被关闭了。

这也是一种美学上令人不愉快的解决方案,因为我不希望整个类(class)都了解仅位于一个try/catch中并且可能永远不会使用的愚蠢对话框。

我想知道是否有一个简单的解决方案,告诉对话框阶段在主要阶段何时关闭以及我在try/catch之外无需编写大量代码的情况下关闭。

最佳答案

在主舞台上的事件OnCloseRequest上,执行Platform.exit(docs.oracle.com/javafx/2/api/javafx/application/Platform.html)

关于javafx-2 - 当主要阶段关闭时,如何关闭所有阶段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12194967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com