java使用Swingworker给出不正确的结果
我的项目遵循以下流程:
我想用swingworker。这是我使用它的方式,但结果并不正确
在我的GUI代码中,我的代码是用于执行主体类的
我已经用buttons代码编写了以下代码行
Main f2 = new Main();
f2.execute();
在我的校长班上,我已经做到了这一点
class Principalclass extends SwingWorker<Void, Void>
{
@Override
public Void doInBackground() throws IOException
{
//while loop
}
@Override
public void done() {
System.out.println("I am DONE");
GUI b = new GUI();
b.ShowFrame(); //calls the function of the GUI to display frame
}
现在,这段代码没有打印“我完成了”显示GUI框架。如果我在使用swingworker时必须在2、3和4 bcz类中做一些更改,或者必须只在Principalclass中做进一步的更改,我会感到困惑。其次,这个应用程序需要15分钟才能完成任务,只需要2秒:(。可能是因为我第一次使用swing worker,所以我做错了什么
# 1 楼答案
您应该执行swing worker并从EDT执行。有关更多信息,请查看here