我有一个用Swing实现的UI.一个组件做了一些可能需要一些时间的工作,所以我使用了SwingUtilities.invokeLater.但是,我正在阅读一些旧代码并在以下内容中找到ActionListener:
if (!SwingUtilities.isEventDispatchThread()) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// code X
}
});
} else {
// code X
}
Run Code Online (Sandbox Code Playgroud)
我认为它有意义,因为它与code XEDT 分开.但是,我发现它很容易出错,因为我已经使用了几次,而且两次都忘记了这else部分.
问题是:SwingUtilities.isEventDispatchThread()检查是否必要?或者我可以假设我不在EDT并且总是使用invokeLater?
非常感谢.