JavaFX 对话框在关闭后出现阻塞,未正确关闭
JavaFX Dialog appears to block after closing, is not dismissed properly
我正在写一个小游戏;该游戏作为从服务器程序到客户端程序的应用程序 运行。当客户端连接到服务器时,两个用户通常会在他们的计算机上看到游戏的打开 JFX windows。但是,在服务器 class 中,我想在开始游戏之前使用对话框向用户询问游戏参数。到目前为止,我已经制作了有效的对话框,但只有 window 在客户端打开,在服务器端(在游戏启动前通过对话框要求用户输入的那一侧) window 做了没开。在这里没有共享太多代码是导致问题的部分(如果我把对话框从图片中去掉游戏可以运行,但我想要输入参数的功能):
private List<String> makeModalAndGetNames() {
...
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
ButtonType buttonTypeOne = new ButtonType("Choisir les noms");
ButtonType buttonTypeCancel = new ButtonType("Annuler", ButtonBar.ButtonData.CANCEL_CLOSE);
alert.getButtonTypes().setAll(buttonTypeOne, buttonTypeCancel);
Optional<ButtonType> result = alert.showAndWait();...
alert.close()}```
在 start 方法中按原样简单地调用它之后,服务器 class 将不再加载自己的 gui :(。所以我想知道是否有人知道我做错了什么?我应该以不同的方式处理事件在启动方法中?我在这里很茫然。
我不知道它为什么起作用的细节,但在我的程序开头添加行 Platform.setImplicitExit(false);
起作用了
执行此代码:
///////// 警报 //////////////
警报警报 = 新警报(Alert.AlertType.INFORMATION);
alert.setTitle("Message");
alert.setHeaderText("Message :");
alert.setContentText("write your message here");
alert.showAndWait();
我正在写一个小游戏;该游戏作为从服务器程序到客户端程序的应用程序 运行。当客户端连接到服务器时,两个用户通常会在他们的计算机上看到游戏的打开 JFX windows。但是,在服务器 class 中,我想在开始游戏之前使用对话框向用户询问游戏参数。到目前为止,我已经制作了有效的对话框,但只有 window 在客户端打开,在服务器端(在游戏启动前通过对话框要求用户输入的那一侧) window 做了没开。在这里没有共享太多代码是导致问题的部分(如果我把对话框从图片中去掉游戏可以运行,但我想要输入参数的功能):
private List<String> makeModalAndGetNames() {
...
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
ButtonType buttonTypeOne = new ButtonType("Choisir les noms");
ButtonType buttonTypeCancel = new ButtonType("Annuler", ButtonBar.ButtonData.CANCEL_CLOSE);
alert.getButtonTypes().setAll(buttonTypeOne, buttonTypeCancel);
Optional<ButtonType> result = alert.showAndWait();...
alert.close()}``` 在 start 方法中按原样简单地调用它之后,服务器 class 将不再加载自己的 gui :(。所以我想知道是否有人知道我做错了什么?我应该以不同的方式处理事件在启动方法中?我在这里很茫然。
我不知道它为什么起作用的细节,但在我的程序开头添加行 Platform.setImplicitExit(false);
起作用了
执行此代码:
///////// 警报 //////////////
警报警报 = 新警报(Alert.AlertType.INFORMATION);
alert.setTitle("Message");
alert.setHeaderText("Message :");
alert.setContentText("write your message here");
alert.showAndWait();