gpt4 book ai didi

java - 在等待线程完成时更新 Swing GUI

转载 作者:行者123 更新时间:2023-12-01 16:36:28 24 4
gpt4 key购买 nike

我有一个 swing 应用程序,其中运行一个 Thread 类来执行特定的作业。我需要在某个时刻停止正在运行的线程。所以我在线程中放置了一个 boolean 值,当我将其设置为 true 时,线程将停止。

问题是线程需要一些时间才能完成它正在执行的内部工作。

我需要阻止用户在 GUI 上执行任何操作,直到线程完成。我尝试了类似 setEnabled(false) 的方法,但应用程序正在卡住,并且在线程停止之前 GUI 不会更改。我还尝试在另一个线程中更新 GUI,但这也不起作用。

有什么方法可以更新 GUI 或使应用程序禁用,同时停止线程的延迟结束。

谢谢

最佳答案

最好使用SwingWorker :

button.setEnabled(false);
...
@Override
protected String doInBackground() throws Exception {
// process related code
return "";
}

@Override
protected void done() {
button.setEnabled(true);
}

完成doInBackground()方法的处理后,将调用done()方法。

关于java - 在等待线程完成时更新 Swing GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8501437/

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