|
|
|
@ -122,12 +122,20 @@ public class UIUtil {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 异步加载配置并更新UI |
|
|
|
|
* 异步加载多个配置并更新UI,每个配置加载的时间通常较短,约几十毫秒。 |
|
|
|
|
* |
|
|
|
|
* @param <T> 配置对象的类型 |
|
|
|
|
* @param configLoaders 配置加载器列表,每个加载器负责加载一种配置 |
|
|
|
|
* @param uiUpdaters UI 更新器列表,每个更新器负责在 UI 上显示对应配置的值 |
|
|
|
|
* 加载的过程是异步的,UI更新会在任务完成后执行。配置加载是顺序进行的,即一个配置加载完成后,才会加载下一个配置。 |
|
|
|
|
* |
|
|
|
|
* <p> |
|
|
|
|
* 加载过程是异步的,配置加载是顺序进行的,即一个配置加载完成后,才会加载下一个配置。 |
|
|
|
|
* 配置加载任务会在后台线程中顺序执行,所有配置加载完成后,UI更新操作才会依次执行。 |
|
|
|
|
* <p> |
|
|
|
|
* 异常模式: |
|
|
|
|
* - 如果在加载某个配置时发生异常,整个任务会失败,后续的配置加载将不会继续执行。 |
|
|
|
|
* - 异常会被捕获为 `ExecutionException` 或 `InterruptedException`,并在 `done()` 方法中记录日志。 |
|
|
|
|
* - 配置加载过程中出现的错误会导致UI更新操作被跳过。 |
|
|
|
|
*/ |
|
|
|
|
public static <T> void loadConfigsAndUpdateUI(List<Supplier<T>> configLoaders, List<Consumer<T>> uiUpdaters) { |
|
|
|
|
new SwingWorker<List<T>, Void>() { |
|
|
|
|