【问题标题】:JavaFX Dialog appears to block after closing, is not dismissed properlyJavaFX 对话框在关闭后出现阻塞,未正确关闭
【发布时间】:2021-05-22 07:07:38
【问题描述】:

我正在写一个小游戏;游戏作为从服务器程序运行到客户端程序的应用程序工作。当客户端连接到服务器时,两个用户通常都会在他们的计算机上看到打开的游戏 JFX 窗口。但是,在服务器类中,我想在开始游戏之前使用对话框向用户询问游戏参数。到目前为止,我已经制作了有效的对话框,但只有客户端一侧的窗口打开,服务器端(在游戏启动前通过对话框要求用户输入的一侧)窗口没有打开。这里没有分享太多代码是导致问题的部分(如果我将对话框从图片中取出,游戏可以工作,但我希望具有输入参数的功能):

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 方法中简单地调用这个之后,服务器类将不再加载自己的 gui :(。所以我想知道是否有人知道我做错了什么?我应该在 start 方法中以不同的方式处理事件? 我在这里很茫然。

【问题讨论】:

  • 欢迎@Quarantiner - 如果您对问题已解决感到高兴,即使您自己解决了,请记得关闭问题。
  • 好吧,虽然我没有其他答案可以接受,但我接受了我自己的答案...

标签: java javafx dialog alert


【解决方案1】:

我不知道它为什么会起作用的细节,但是在我的程序开头添加 lign Platform.setImplicitExit(false); 起作用了

【讨论】:

    【解决方案2】:

    执行此代码:

    /////////警报///////////////////

    警报警报 = 新警报(Alert.AlertType.INFORMATION);

        alert.setTitle("Message");
    
        alert.setHeaderText("Message :");
    
        alert.setContentText("write your message here");
    
        alert.showAndWait();
    

    【讨论】:

      猜你喜欢
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-24
      • 1970-01-01
      相关资源
      最近更新 更多