JavaFX客户端-用户界面不会显示主机触发的警报

时间:2019-05-05 18:34:10

标签: java javafx observable

我目前有一个小型Java项目,在该项目中,我必须为小型游戏建立对等连接。 该游戏托管在一个客户端的服务器上,因此从现在开始,我将这个客户端称为“主机”。 两个UI控制器都在观察GameState。 客户端和主机成功连接。现在,主持人可以单击“开始游戏”按钮。发生这种情况时,客户端和主机都应看到警报,但这不会在客户端发生。主机将看到警报,但客户端将不会。

public void update(Observable o, Object arg) {
  if (o instanceof GameState) {
    this.alert("Event", "Event received"
    "An event was triggered by remote control.");
  }
}

我已经检查了多个时间,如果客户端收到了更新的GameState并正确进行了。 我已经尝试建立一个新场景,但没有成功。

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案。 对于那些感兴趣的人,javafx.application.Platform是行之有效的方法。 就我而言:

public void update(Observable o, Object arg) {
  if (o instanceof GameState) {
    Platform.runLater( () -> this.alert("Event", "Event received"
    "An event was triggered by remote control."));
  }
}