JavaFX 8在事件中循环更新ImageView



我有一个21点程序,我想显示延迟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);

最新更新