В примере, который вы разместили, используются функции, связанные с доступностью, поэтому возможно, что инициализация может занять больше времени.Практика, которой мы следуем при использовании Swing, состоит в том, чтобы избежать тяжелой инициализации в очереди событий.Исходная логика автора заключается в том, что он ожидает полной инициализации свинга jframe и т. Д., А затем инициализирует свои собственные компоненты.
// Check to see if the GUI subsystem is initialized correctly. (This is needed in JDK 1.2 and higher). If it isn't ready, then we have to wait.
if (EventQueueMonitor.isGUIInitialized()) {
createGUI();
} else {
EventQueueMonitor.addGUIInitializedListener(this);
}
}
public void guiInitialized() {
createGUI();
}
Фактическая логика инициализации записана в методе createGUI, который будет вызываться Swing или вашей собственной логикой.Ваша программа не прекратит работу, поскольку Swing использует собственный поток, не являющийся демоном (т. Е. Если вы не вызовете System.exit, ваша программа свинга не прекратит работу).