gpt4 book ai didi

Java sleep() 在实际 sleep 命令之前停止执行代码

转载 作者:行者123 更新时间:2023-11-29 05:09:10 28 4
gpt4 key购买 nike

我有一个图形用户界面,我想显示一些文本,然后稍等一下。

我的代码看起来像这样:

//do something (add JTextArea, revalidate, repaint)
try{
Thread.sleep(4000);
}
catch(InterruptedException e){
}

应该执行“某事”,然后代码应该等待。但是,只有在等待时间结束后,我才看到“某些事情”发生了。我怎样才能实现所需的行为?

最佳答案

是的,如我所想,您在 Swing 事件线程上调用 sleep 。

解决方案:不要。在事件线程上调用 Thread.sleep(...) 将阻止它执行必要的操作,包括绘制您的 GUI(这就是为什么您没有看到您正在执行的 sleep 前更改的原因期待)。

使用 Swing 计时器或后台线程。解决方案的详细信息将取决于您的问题。


在您的编辑中您声明:

I have a gui and I want to display some text and then wait a little.

然后使用 Swing Timer。您可以在此处找到该教程:How to use Swing Timers .简而言之,您将时间延迟和一个 ActionListener 传递到 Timer 的构造函数中,您需要将其设置为不重复,然后在其上调用 start。 ActionListener的代码会在延迟发生后被调用。

关于Java sleep() 在实际 sleep 命令之前停止执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29289092/

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