如果从任务调用,则警报显示空消息

时间:2018-04-12 10:13:06

标签: task javafx-8 alert

Task<Void> task = new Task<Void>() {
  public Void call() {
    try {
      // my task code
    } catch (Exception e) {
      log.error(e.getMessage(), e);
    }
    return null;
  }
};
task.setOnSucceeded(event -> {
  Platform.runLater(new Runnable() {
    @Override
    public void run() {
      Alert alert = new Alert(AlertType.INFORMATION, "task success", ButtonType.OK);
      alert.showAndWait();
    }
  });
});

在上面的代码中,我试图显示来自任务成功部分的警报消息。

我已将应用程序部署在远程计算机上,并使用远程桌面连接访问该应用程序。

当我将远程桌面连接窗口保持最小化时,我将警报消息清空。 (是的,我在RDC窗口打开时看到消息)

当我专注于父容器(舞台)时,它会刷新并显示正确的消息,或者只是alt + tab几次也可以。尝试了各种解决方案来设置模态,初始阶段,一些vm args等似乎没什么用。

知道为什么会出现这个问题吗?我理解任务是一个单独的线程,因此我使用platform.runlater?我做错了什么吗?任何替代解决方案?

任务在执行繁重操作时在新线程上运行。

0 个答案:

没有答案