FocusTraversalPolicy
Как передать фокус ввода от одного элемента другому? Элементы принадлежат какому-то контейнеру. У контейнера есть политика передачи фокуса ввода, т.е. когда мы жмём, например на Tab, курсор перемещается в следующий элемент. Порядок передачи фокуса ввода определяется последовательностью установки элементов в данный контейнер. Но если надо изменить этот порядок, тогда либо переустановить содержимое контейнера в новом порядке, либо изменить политику передачи фокуса ввода.
Чтоб изменить политику, создадим наследника от класса FocusTraversalPolicy и установим эту новую политику в контейнер.
Пример:
В функциях getComponentAfter и getComponentBefore устанавливаем порядок перехода между элементами управления. Контейнером элементов в примере является форма, установим туда новую политику:
Теперь переходы пойдут в соответствии с новой политикой.
Элемент управления JComboBox не должен, в нашем случае, получать фокус ввода:
Получаем: такой результат.