我有一个二十一点程序,我想用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());
}
}
答案 0 :(得分:-1)
使用预定的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);