Поле кнопки (с использованием изображения в качестве кнопки) проблема фокуса

В одной строке мы отображаем текстовое поле для ввода текста поиска вместе с изображением поиска в качестве поля кнопки. Ниже этой строки мы показываем список имен.

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

Текстовое поле для ввода текста поиска:

final TextField tfTeamSearch = new TextField();      
tfTeamSearch.setFocus(true);

Поле кнопки изображения:

btnSearchImage = new Button();
btnSearchImage.setIcon(imgSearchUnFocus);
btnSearchImage.getStyle().setBgTransparency(0);
btnSearchImage.getStyle().setBorder(null);
btnSearchImage.getStyle().setFont(font);
btnSearchImage.getSelectedStyle().setFont(font);
btnSearchImage.getPressedStyle().setFont(font);
btnSearchImage.getUnselectedStyle().setFont(font);
btnSearchImage.setFocusable(true);

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

1 ответ

Во-первых: вы должны использовать tfTeamSearch.requestFocus() вместо tfTeamSearch.setFocus(true) если вы хотите сосредоточиться на TextField, tfTeamSearch.setFocus(true) меняет только стиль.

Во-вторых: вы можете использовать Component методы setNextFocusDown, setNextFocusUp, setNextFocusLeft или же setNextFocusRight для настройки следующего компонента под фокусом.

Другие вопросы по тегам