出于某种原因,即使我使用oracle网站上的确切代码示例来进行Swing Timer,它也不会等待1秒钟。它只是跳到了“你的分数等等”的JOptionPane。
这是我的学校项目的源代码。在运行剩下的代码之前,为什么这不工作而不等待1秒?
//Check to see if user has enetered anything
if(!answered)
{
int delay = 1000; //milliseconds
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
//...Perform a task...
}
};
new Timer(delay, taskPerformer).start();
afk = true;
incorrect += 1;
answered = true; //This breakes it out of the loop
}
答案 0 :(得分:8)
计时器用于在特定时间后运行回调。如果您只是想延迟,可以将代码移动到延迟之后运行 taskPerformer
动作监听器。
Thread.sleep(1000)
在这里并不理想,因为它会导致UI完全冻结,因为你会让UI线程睡眠。