SwingでUIを実装しています。1つのコンポーネントが作業を行うため、時間がかかる場合があるため、を使用しますSwingUtilities.invokeLater
。しかし、私はいくつかの古いコードを読んでいて、これをActionListener
:で見つけました
if (!SwingUtilities.isEventDispatchThread()) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// code X
}
});
} else {
// code X
}
code X
EDTから分離しているので理にかなっていると思いました。しかし、何度か使用したことがあり、どちらの場合もelse
パーツを忘れてしまったため、エラーが発生しやすいことがわかりました。
問題は、SwingUtilities.isEventDispatchThread()
チェックが必要かどうかです。または、私はEDTに参加しておらず、常に使用していると想定invokeLater
できますか?
どうもありがとう。