由于某种原因,即使我使用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
}
最佳答案
计时器用于在特定时间后运行回调。如果只想延迟,则可以将延迟后要运行的代码移到taskPerformer
操作侦听器中。Thread.sleep(1000)
在这里不是理想的,因为它将使UI完全冻结,因为您将使UI线程进入睡眠状态。