相关疑难解决方法(0)

防止在后台任务期间锁定Swing GUI

我有一个swing应用程序,它存储一个对象列表.当用户点击按钮时

我想对列表中的每个对象执行两个操作,然后一旦完成,将结果绘制在JPanel中.我一直在尝试使用SwingWorker,Callable和Runnable进行处理,但无论我做什么,在处理列表时(可能需要几分钟,因为它是IO绑定的),GUI被锁定.

我有一种感觉,这可能是我调用线程或其他东西的方式,还是可能与图形函数有关?这不是线程,因为它非常快.

我必须按顺序完成两个处理阶段,那么确保第二个阶段在第一个阶段等待的最佳方法是什么?我已经使用了join(),然后

while(x.isAlive())  
{  
        Thread.sleep(1000);  
}
Run Code Online (Sandbox Code Playgroud)

尝试确保这一点,但我担心这也可能是我的问题的原因.

我一直在寻找一些指针,但由于我找不到任何东西,我确信我在这里做了些蠢事.

java swing multithreading swingworker event-dispatch-thread

11
推荐指数
2
解决办法
1万
查看次数