JDialog box не получает фокус - PullRequest
3 голосов
/ 08 июля 2011

У меня генерируется немодальное диалоговое окно, которое предлагает пользователям открыть новое окно. Ящик можно открыть двумя способами: либо непосредственно из меню «Файл» для кадра, который я пишу, либо косвенно, через фреймворк, в который вставляется моя панель.

Когда я делаю вызов напрямую через меню файлов, диалоговое окно фокусируется точно так, как я хочу. Но когда у меня есть фреймворк, косвенно открывающий диалоговое окно, он не фокусируется должным образом.

Кажется, что нет разницы между двумя методами открытия диалога, в обоих случаях вызывается функция загрузки, и только после 5 вызовов метода позже открывается диалоговое окно. В обоих случаях кадр, который генерирует диалоговое окно, реализуется во время его создания. Я попытался вызвать requestFocus после того, как диалоговое окно стало видимым, но оно, похоже, ничего не делает.

Есть ли какие-либо предположения, почему диалоговое окно не имеет фокуса или как я могу выделить его как отдельное окно от окна, которое обычно имеет фокус?

Ответы [ 2 ]

3 голосов
/ 08 июля 2011

в некоторых случаях трудно установить фокус на ожидаемый контейнер верхнего уровня , как показано здесь , но для отличного обходного пути лучше взглянуть на camickr Dialog Focus

2 голосов
/ 08 июля 2011

Когда вы создаете диалог, попробуйте установить основной графический интерфейс в качестве родителя диалога.

В первом случае, когда вы щелкаете из меню, он автоматически устанавливает основной графический интерфейс в качестве родителя диалога, но не во втором случае.

Поэтому убедитесь, что при создании диалога вы всегда устанавливаете основной графический интерфейс / окно как родительский.

Это должно помочь в большинстве случаев.

...