【发布时间】:2018-02-07 11:30:02
【问题描述】:
我正在开发一个大型 Swing 应用程序,其中包含许多在应用程序启动时加载的组件。加载组件、设置它们的属性并将它们添加到面板的过程需要几秒钟。
应用程序 UI 在加载应用程序期间冻结。我想在加载整个 UI 时显示一个启动画面,但启动画面也会冻结。
如果我将 UI 构造移动到另一个线程,这将违反 EDT 线程。
在不冻结 UI 的情况下加载此类 Swing 界面的正确方法是什么?
我已经看到了关于这个主题的现有答案,但它们涵盖了与 Swing 无关的外部任务阻塞 UI 的情况,但在这里,复杂 UI 本身的构造会阻塞 UI 刷新 (启动屏幕进度条)。
【问题讨论】:
标签: java multithreading swing event-dispatch-thread