Как запросить FocusInWindow после JOptionPane? - PullRequest
0 голосов
/ 09 декабря 2011

У меня есть следующий код:

JOptionPane.showMessageDialog(this, "Wrong format!", "Wrong format!", JOptionPane.ERROR_MESSAGE);

myJTextField.requestFocusInWindow();

JTextField не получает фокус после выполнения JOptionPane, как мне исправить это аккуратно и аккуратно? Мой JTextField находится на JTabbedPane.

Ответы [ 2 ]

3 голосов
/ 09 декабря 2011

это непростое перемещение работы Focus между двумя Top-Level Containers, потому что Focus пришел из родной ОС и является асинхронным,

Вы должны отложить это событие до invokeLater(), если безуспешно, тогда вам нужно искать Dialog Focus by @camickr

0 голосов
/ 25 января 2015

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

...