LWUIT Tab tab / проблема с фокусировкой списка
Я вложил 3 "вкладки" в верхней части формы. Каждая вкладка имеет "СПИСОК". Всякий раз, когда я меняю фокус с одной вкладки на другую, я хочу, чтобы мои списки имели фокус. Как мне убедиться, что мои списки всегда имеют фокус? Я перемещаюсь, используя gameKeyEvents. Я добавил actionListener в свою форму для ключевых событий игры. Я не могу переопределить метод keyReleased() формы, так как мне нужно добавить слушатель действия в мою форму (он также содержит другие команды).
Я попытался переопределить метод keyreleased() моего класса 'Tabs', но он не работает (ПОЧЕМУ??). Ничего не произошло.
Tabs holder = new Tabs()
{
public void keyReleased(int keyEvent)
{
System.out.println("key release is working"); // this statement does not work
}
};
Когда я перемещаю вкладки, перемещаясь по левой и правой клавишам, мои списки теряют фокус (их выделение кажется блеклым), а в других случаях они удерживают фокус (их выделение кажется сплошным.) Как я могу гарантировать, что мои списки всегда имеют фокус? Это очень важно для моей программы. Я приложил снимки. Пожалуйста помогите.
Пожалуйста, смотрите прикрепленные фотографии.
На рисунке 1 вы увидите, что элемент списка 3 выделен. Теперь, если я нажму игровые клавиши влево / вправо / вниз... фокус исчезнет из списка и перейдет на вкладку в 3-й позиции. Я хочу предотвратить это. (не могу публиковать изображения, потому что я новый пользователь. пожалуйста, проверьте ссылки)
1 ответ
Получите форму и переопределите keyReleased/keyPresed
обнаружить игровой ключ вправо / влево.
Когда вы получаете правую или левую клавишу, никогда не вызывайте super (всегда вызывайте super для других случаев).
в keyPressed
метод, если вы получаете право / лево, просто переключите вкладку и вызовите requestFocus()
метод для соответствующего списка.
Вам нужно получить кнопки вкладок из компонента "Вкладки" и установить для них фокусировку "ложь", чтобы список не потерял фокус.