私は、TCP/IP接続を使用してjavafxでマルチプレイヤーオプションを使用してゲームを作ろうとしています。バックグラウンドで接続を処理するスレッドを作成し、ユーザーがオフラインで再生している間に接続を待機させるようにしました。誰かが接続しようとすると、スレッドがmain javafxアプリケーションのボタンを起動させたい場合。問題は、別のスレッドでUIを変更できないことです。 Task<>
,platform.runlater
、Timeline
を使ってみましたが効果がありません。背景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();
おそらくPlatform.runLaterがここに移動する方法ですが、ここであなたの試行を表示しないでください。 – mipa
コードはほとんど同じです。私はちょうど、Platform.runLaterにスレッドを変更しました。 –