gpt4 book ai didi

java - 如何在不阻塞 UI 的情况下暂停 Java 指定时间?

转载 作者:行者123 更新时间:2023-12-02 11:50:08 24 4
gpt4 key购买 nike

我想这已经被涵盖过,但我没有找到真正解决我的问题的答案。在此代码摘录中,我想显示对按钮单击的 react (在 lblMessage 中设置文本),等待一秒钟,然后显示另一个图像。

在标记为“等待 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();
}
}

最佳答案

替换您的**--<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 调度线程中执行的某些操作。

关于java - 如何在不阻塞 UI 的情况下暂停 Java 指定时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47940743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com