Если вы откроете диалог в 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 требует, чтобы этот поток работал.
Итак, как это работает?