Как сохранить фокусировку клавиатуры на одном компоненте? - PullRequest
0 голосов
/ 27 декабря 2010

Мне нужно сохранить фокус ввода с клавиатуры на одном компоненте внутри JPanel. Это для приложения с экранной клавиатурой.

Ответы [ 4 ]

1 голос
/ 27 декабря 2010

Лучше вернуть фокус на компонент (component.grabFocus()) после нажатия кнопки на экранной клавиатуре.

Или вы можете установить фокус слушателя (component.addFocusListener(FocusListener l)) и никогда не отпускать фокус, вызывая grabFocus () в методе focusLost() FocusListener.

1 голос
/ 27 декабря 2010

Не уверен, что я действительно понимаю вопрос. Но вы можете попробовать что-то вроде:

otherComponents.setFocusable( false );

Вам также может понадобиться пользовательский FocusTraversalPolicy .

Если вам нужна дополнительная помощь, тогда опубликуйте SSCCE , который демонстрирует проблему.

0 голосов
/ 27 декабря 2010

Просто предположение: взгляните на InputVerifier.

0 голосов
/ 27 декабря 2010

Это даст вам фокус на singleComponent при открытии фрейма, без необходимости изменять политику фокуса всего остального: singleComponent.requestFocusInWindow(); Поскольку фокус не замораживается, вам нужно установить setFocusable (false ) для других компонентов, которые предлагает camicr.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...