我的问题:
我的应用程序中有一个长时间执行的任务(需要从web获取数据),我正在尝试在执行任务时显示带有动画的加载屏幕(只是一个旋转的圆圈,不需要进度条)
迄今为止我所做的工作:
我在面板中创建了加载屏幕的设计,并将其添加到JFrame中,并尝试在长流程的代码之前调用实例化JFrame,然后在流程完成后处理它,如下所示:
LoadingFrame frame = new LoadingFrame();
//Long Process
Wiring wiring = new Wiring(node.source);
wiring.generateScopeForTargetNode();
// close() calls setVisible(false) and then dispose()
frame.close();
然而,直到任务完成,我收到的只是一个空白框,框架才被重新粉刷,最后它没有被处理掉。
我在SO中搜索了这个问题,发现它与线程和并发性有关(我不熟悉),并找到了使用的建议
JDialog
而不是
JFrame
,所以我听从了建议。我最终得到的是:
-
JDialog加载并绘制,但动画无法播放
-
JDialog未在末尾被释放
我需要的帮助:
我已尝试搜索更多问题,并找到了我应该使用的建议
SwingWorker
如果我理解正确的话,可以在一个线程中运行一个任务,在另一个线程运行动画。然而,我对线程和
摇摆工人
需要帮助创建一个简单的
摇摆工人
实现了我想要做的事情