我目前有一个小型 Java 项目,我必须为一个小游戏建立点对点连接。 该游戏托管在一个客户端的服务器上,因此从现在起我将该客户端称为“主机”。 两个 UI Controller 都在观察 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 并且情况正确。 我已经尝试设置一个新场景但没有成功。
最佳答案
我自己找到了解决方案。
对于那些感兴趣的人来说,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."));
}
}
关于JavaFX 客户端 UI 不会显示主机触发的警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55995140/