我想之前已经讨论过,但我找不到真正解决问题的答案。 在此代码摘录中,我想显示对按钮单击的反应(在lblMessage中设置文本),等待一秒钟,然后显示另一个图像。
在标记为&#34的部分中;等待1000毫秒"我尝试过Thread.sleep(),以及计算经过的系统时间。但是,在这两种情况下,lblMessage仅在等待时间之后填充。
我遇到过Timer,但我无法弄清楚如何使用它的语法(特别是需要输入的任务)。
提前感谢您的帮助!
public void answerButtonClicked(ActionEvent event) {
endTime = System.nanoTime();
elapsedTime = (endTime - startTime);
String answerTime = String.format("%.2f", (elapsedTime/1000000000));
Button btnAnswer = (Button)event.getSource();
String answer = btnAnswer.getId();
String correctAnswer = mpScenes.get(model.getNextScene(round-1));
if (answer.equals(correctAnswer)) {
lblMessage.setText("Richtig (" + answerTime + "s)");
} else {
lblMessage.setText("Falsch (" + answerTime + "s)");
}
**--<wait 1000 ms>--**
if (round < numberOfRounds) {
round++;
setNewMainImage(round);
} else {
endOfGame();
}
}
答案 0 :(得分:1)
用以下内容替换**--<wait 1000 ms>--**
:
Timer timer = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (round < numberOfRounds) {
round++;
setNewMainImage(round);
} else {
endOfGame();
}
}
});
timer.start();
javax.swing.Timer
允许您延迟稍后将在swing UI调度线程中执行的某些操作。