java - JavaFX 客户端 UI 不会显示由主机触发的警报
问题描述
我目前有一个小型 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 并且正确发生,我已经检查了多次。我已经尝试建立一个新场景但没有成功。
解决方案
我自己找到了解决方案。对于那些有兴趣的人来说,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."));
}
}
推荐阅读
- java - 如何发送列表
作为 Object 并使用 ObjectInputStream 读取它 - javascript - 使用 react-native-router-flux 反应原生网络
- regex - 需要使用 code.in functions.php 验证几个字段
- powershell - 如何使用 PowerShell 脚本检查远程 IBM MQ 队列管理器的队列深度?
- windows - 无法安装 cargo-binutils 库:找不到工具。是否安装了`gcc.exe`?
- c - 定义前是否允许 typedef
- swiftui - NavigationView + TextField 背景
- python - 一旦某些条件在opencv中的cam或video中出现,如何保存图像
- azure-data-catalog - 能否使用 Azure Data Catalog 的 Rest API 上传要分析的数据?
- .net - Visual Studio 2019 Nuget 问题