2016-12-07 15 views
0

私は、TCP/IP接続を使用してjavafxでマルチプレイヤーオプションを使用してゲームを作ろうとしています。バックグラウンドで接続を処理するスレッドを作成し、ユーザーがオフラインで再生している間に接続を待機させるようにしました。誰かが接続しようとすると、スレッドがmain javafxアプリケーションのボタンを起動させたい場合。問題は、別のスレッドでUIを変更できないことです。 Task<>,platform.runlaterTimelineを使ってみましたが効果がありません。背景JavafxでのTCP/IP接続

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

おそらくPlatform.runLaterがここに移動する方法ですが、ここであなたの試行を表示しないでください。 – mipa

+0

コードはほとんど同じです。私はちょうど、Platform.runLaterにスレッドを変更しました。 –

答えて

1

スレッドはOKです。あなたがしなければならないことは、ボタンの起動をPlatform.runLater呼び出しでラップすることです。

+0

それはトリックでした。ありがとうございました!!! –

関連する問題