JavaFX 8 在事件循环中更新 ImageView

JavaFX 8 Update ImageView in Loop in Event

我有一个二十一点程序,我想延迟 1 秒出牌。当我使用 Thread.sleep(1000) 时,它会等待并同时显示所有卡片。

    do {
        neueKarte(new ActionEvent());
        Thread.sleep(1000);
    } while (bot.getValue() <= 16);

循环结束后显示所有图像,而不是每秒显示一次

    @FXML private void neueKarte(ActionEvent event) throws Exception {
    if(spielerDran == true) {
        sp1.nimmKarte(deck, 1);
        punkte.setText("Deine Punkte: " + Integer.toString(sp1.getValue()));
        naechstesFeld().setImage(sp1.hand.get(sp1.hand.size()-1).getImage());
        if(sp1.hand.size()==2) {
            aussteigen.setDisable(false);
        }
        if(sp1.getValue()>=21) {
            zieheKarte.setDisable(true);
            aussteigen(new ActionEvent());
        }
    } else {
        bot.nimmKarte(deck, 1);
        botPunkte.setText("Computer Punkte: " + Integer.toString(bot.getValue()));
        naechstesFeld().setImage(bot.hand.get(bot.hand.size()-1).getImage());
    }
}

使用Timer预定,这里举例:

    Timer timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            SwingUtilities.invokeLater(new Runnable() {
                @Override
                public void run() {
                    // do the job here
                    if (bot.getValue() <= 16) {
                        neueKarte(new ActionEvent());
                    } else {
                        cancel();
                    } 
                }
            });
        }
    }, 0, 1000);