В зависимости от вашего приложения и того, как оно используется, возможно, что что-то рисует на экране (и, следовательно, использует EventQueue
) до или во время вызова вашего main
метода.Вызовы, которые изменяют любые компоненты пользовательского интерфейса, должны быть сделаны на Event Dispatch Thread
, и это включает в себя настройку приложения видимым.
Поэтому, чтобы быть в безопасности, рекомендуется запускать ваше приложение на EDT
.
Почему это происходит автоматически в генераторе кода здесь?
Это не повредит, его легко генерировать, и это считается хорошей практикой.
Почему main должен быстро вернуться и позволить окну приложения позже создать очередь событий?
Возможно, метод main
вызывается из другого приложения, которое использует EDT
и, возможно, уже что-то нарисовало на экране.Если вы рисуете ваше приложение непосредственно в main
, возможно, ваше приложение может изменять какой-то компонент, который находится в процессе обработки чем-то в EDT
и потенциально уже нарисован на экране.
Поэтому, чтобы быть в безопасности на случай, если такая ситуация когда-либо случится, вы должны оставить до EDT
, чтобы нарисовать ваше приложение, чтобы оно могло делать это, когда оно не будет мешать чему-либо еще.
Разве блокировка не будет точной точкой?
Если что-то еще не вызывает main
, кроме процесса JVM, который ваш пользователь запустил, дважды щелкнув значок на рабочем столе, этоничего не изменится, когда main
вернется, пока на экране что-то есть.
Я могу лишь временно сделать вывод, что это имеет некоторые преимущества, которые не видны в крошечных демонстрационных приложениях, созданныхначинающие как я
Вы правы - в большинстве случаев это, вероятно, не будет иметь значения, но я предполагаю, что они включили его, потому что его было легко создавать и реализовывать, это не повредит,и это послужило бы примером хорошей практики.