JavaFX Task Ending und JavaFX Threading

Ich habe gerade erst angefangen, JavaFX zu lernen, und ich habe versucht, mehr darüber zu erfahren, indem ich einen Snake-Klon erstellt habe, aber ich habe Probleme mit dem Threading. Ich wollte einen Thread erstellen, der die Position der Schlange auf dem Bildschirm aktualisiert, konnte jedoch keinen in einem normalen Runnable-Thread verwendeten Thread verwenden, da ich JavaFX in diesem Thread verwendete, um die Positionen der auf dem Bildschirm gezeichneten Rechtecke zu aktualisieren (was ich gelernt habe) Sie können das nicht und müssen stattdessen Tasks, Services, Platform.runLater usw. verwenden?) Meine Klasse, aus der ich den Thread erstellt habe, erweitert JavaFX.scene.layout.Pane, und ich versuche, mithilfe einer Task die Schlangenposition zu aktualisieren . Mein Problem ist: Die Task scheint nur ein- oder zweimal zu laufen und wird beendet, ohne dass ich Interrupts gebe.

Konstruktor für die Klasse, die Pane erweitert (Die Snake-Klasse erweitert Group):

public GameFrame(){
    this.setPrefSize(800, 600);

    Snake snake = new Snake();
    this.getChildren().add(snake);

    taskThread = new Thread(new Task<Void>() { 
        protected Void call() throws Exception {
                while(!Thread.currentThread().isInterrupted()){
                    snake.updatePosition();
                    try{
                    Thread.sleep(1000);
                    } catch(InterruptedException e){
                        break;
                    }
                }
            return null;
        }
    });
    taskThread.start();
}

Ich habe das Gefühl, ich verstehe nicht wirklich, was das Beste ist, was ich hier tun kann, und was ich versuche zu tun, kann hackisch sein. Gibt es Vorschläge, was ich tun soll oder wie ich das beheben kann?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage