GUIが設定されている環境を作成しようとしていて、ユーザーがリスナーを介してコンポーネントを変更している間に、別のスレッドがX秒。別のクラスの別のスレッドからJavaFX GUIを変更する
私は、ゲームを1つのクラスにし、 "要素加算器"スレッドを別のスレッドに入れたいと思います。もちろん、JavaはJavaFX GUIを別のスレッドから変更できないと言っています。
私はPlatform.runLater()しかし、私の知る限り見るように、すべてのこれらのソリューションは匿名内部クラスを使用するを使用してソリューションを見てきました。そして、私は本当に私の加法者が別の(名前のついた)クラスに入ることを望んでいます。
任意のヒントが本当にいただければ幸い、ここで問題を再現するコード、最小限のバージョンがあります:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class DifferentThreadJavaFXMinimal extends Application {
private Thread t;
private GridPane gp;
public static void main(String[] args){
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
gp = new GridPane();
Scene gameScene = new Scene(gp, 600,500);
primaryStage.setScene(gameScene);
t = new Thread(new Thread2(instance()));
primaryStage.show();
t.start();
}
void addElement(int i) {
Button actualButton = new Button("TEST");
gp.add(actualButton,i,i);
}
public DifferentThreadJavaFXMinimal instance(){
return this;
}
}
class Thread2 implements Runnable {
private DifferentThreadJavaFXMinimal d;
Thread2(DifferentThreadJavaFXMinimal dt){
d=dt;
}
@Override
public void run() {
for (int i=0;i<4;i++) {
d.addElement(i);
}
}
}
はあなたに非常に多くのJames_Dをありがとう、それが現実現実のソリューションを把握するために私にしばらく時間がかかったが、あなたの提案は証明しましたパズルの欠けている部分になる! おかげで再び! –