在 IntelliJ IDEA 插件开发中,ApplicationManager.getApplication().invokeLater() 是一个核心方法,用于确保代码在事件分发线程(Event Dispatch Thread, EDT)中执行,避免 UI 线程阻塞或线程安全问题。以下是其关键点总结:
一、基本用法
- 无延迟执行
将任务提交到 EDT 立即执行:
ApplicationManager.getApplication().invokeLater(() -> {
// 更新 UI 或执行需在 EDT 运行的逻辑
myLabel.setText("更新后的文本");
});
- 带延迟执行
可添加ModalityState参数控制执行时机(如等待模态对话框关闭后执行)7:
ApplicationManager.getApplication().invokeLater(() -> {
// 逻辑代码
}, ModalityState.stateForComponent(myDialog));