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() метод для соответствующего списка.

Вам нужно получить кнопки вкладок из компонента "Вкладки" и установить для них фокусировку "ложь", чтобы список не потерял фокус.

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