Использование TimeUnit для сна между изменением текста метки JavaFX - PullRequest
2 голосов
/ 14 марта 2020

Я пишу GUI в JavaFX для игры Pokemon, над которой я работаю. После того, как я нажму, какое движение я хочу использовать, я хочу описать атаку с меткой Есть несколько сообщений, которые я хочу отображать отдельно, поэтому я пытаюсь использовать TimeUnit.SECONDS.sleep (), чтобы поместить 3-секундный промежуток между каждым сообщением. Когда я запускаю программу, она остается на предыдущем экране (moveOptions в коде), ждет 6 секунд и сбрасывается на основной экран (battleOptions) без отображения каких-либо сообщений. Почему не отображаются мои ярлыки?

@FXML
HBox battleOptions, moveOptions, attackNarration;

@FXML
Label narration;

public void handleMoveButton() throws InterruptedException {

        this.moveOptions.setVisible(false);                  //makes previous screen invisible
        this.attackNarration.setVisible(true);               //makes the layout containing my messages visible

        this.narration.setText("Pikachu used Tackle");       
        TimeUnit.SECONDS.sleep(3);                           //should display above message for 3 seconds

        this.narration.setText("Foe Pikachu used Tackle");
        TimeUnit.SECONDS.sleep(3);                           //should change to this message for 3 seconds

        this.attackNarration.setVisible(false);              //makes message screen invisible
        this.battleOptions.setVisible(true);                 //makes home screen visible to restart the turn
    }
...