Javafx 中的后台 TCP/IP 连接

background TCP/IP connection in Javafx

我正在尝试使用 TCP/IP 连接在 javafx 中制作带有多人游戏选项的游戏。我创建了一个在后台处理连接的线程,以便它可以在用户离线玩游戏时监听连接。如果有人尝试连接,我希望线程在主 javafx 应用程序上触发一个按钮。问题是我无法在另一个线程上修改 UI。我尝试使用 Task<>platform.runlaterTimeline 没有效果。

  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();

线程在这里没问题。您需要做的是将按钮的触发包装在 Platform.runLater 调用中。