Вызовите метод requestFocus()
.
Это не гарантированно работает, потому что есть много причин, по которым операционная система не позволяет рамке фокусироваться. Может быть другой кадр с более высоким приоритетом в другом приложении. Есть также некоторые рабочие столы Linux, которые (если я правильно помню) не позволяют фреймам запрашивать фокус.
Чтобы дать вам больше шансов на успех, я также рекомендую вызвать метод toFront()
перед запросом фокуса.
frame.setVisible(true);
frame.toFront();
frame.requestFocus();
Пожалуйста, имейте в виду, что ничего из этого не гарантируется, потому что обработка кадров, особенно с фокусировкой и многоуровневой структурой, сильно зависит от операционной системы. Поэтому установите рамку видимой, переместите ее вперед и запросите фокусировку. После того, как вы откажетесь от EDT, операционная система, скорее всего, будет фокусироваться на кадре. По крайней мере, окно должно быть сверху.