Если вы откроете диалог в Swing, например JFileChooser, он будет несколько похож на этот псевдокод:
swing event thread { create dialog add listener to dialog close event { returnValue = somethingFromDialog } show dialog (wait until it is closed) return returnValue }
Мой вопрос: как это может работать? Как видите, поток ожидает возвращения до закрытия диалогового окна. Это означает, что поток событий Swing заблокирован. Тем не менее, можно взаимодействовать с диалогом, который AFAIK требует, чтобы этот поток работал.
Итак, как это работает?