以下行:
SwingUtilities.updateComponentTreeUI(aComponent);
使我的 GUI 无响应。
当调用此方法更新大部分 GUI 上的 laf 时,会花费大量时间,因此在此操作期间会使 GUI 无响应。
由于此操作正在操作 GUI,因此也不能为此使用 SwingWorker。从 SwingWorker 文档:
不应在事件调度线程上运行耗时的任务。否则应用程序变得无响应。
Swing 组件只能在 Event Dispatch Thread 上访问。
但这里的问题是该操作正在访问 Swing 组件并且非常耗时。
有没有防止这种反应迟钝的好方法?