我正在尝试使用TCP / IP连接在javafx中使用多人游戏选项制作游戏。我创建了一个处理后台连接的线程,以便在用户离线时监听连接。如果有人试图连接我希望线程在主javafx应用程序上触发一个按钮。问题是我无法在另一个线程上修改UI。我尝试使用Task<>
,platform.runlater
和Timeline
无效。
Thread thread = new Thread(){
public void run(){
try {
int ServerPort=6779;
ServerSocket serverSocket = new ServerSocket(ServerPort);
System.out.println("waiting for player to join");
Socket connectionSocket = serverSocket.accept();
ObjectOutputStream outToServer1 = new ObjectOutputStream(connectionSocket.getOutputStream());
System.out.println("connected");
Board boardJ = new BoardM();
outToServer1.writeObject(boardJ);
boardS=boardJ;
ServerBoard.fire();
} catch (IOException ex) {
Logger.getLogger(JavaFXApplication1.class.getName()).log(Level.SEVERE, null, ex);
}
}
};
thread.start();
答案 0 :(得分:1)
线程在这里没问题。您需要做的是在Platform.runLater调用中包含按钮的触发。