Обычно это происходит, если вы создаете какие-либо компоненты GUI в потоке, переданном вам в main.
Теперь, на самом деле, ничего плохого не случится, если вы не измените его после того, как поняли (setVisible(true)
или pack()
реализует кадр), НО Sun обнаружила крайний случай, который, как они утверждают сделайте так, чтобы это могло вызвать проблему.
Итак, чтобы быть совершенно правильным, сделайте так, чтобы ваш главный конструктор создал ваше первое окно внутри и invokeLater
или invokeAndWait
.
На самом деле, мне интересно, может ли выход из основного потока сразу после invokeLater
позволить завершить работу всего вашего приложения (поскольку окно почти наверняка еще не успело появиться) ... Возможно, вы захотите использовать invokeAndWait
, если ваш основной поток не выходит.