Программные кнопки не реагируют после отмены нажатия и отпускания клавиши

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

Когда я это делаю, игровые клавиши работают нормально, но у меня возникают проблемы с добавлением в приложение более двух команд. Обычно actionlistener автоматически обрабатывает сопоставление нескольких команд, но это не так.

Можно ли отобразить более одной команды на программную клавишу (например, с кодом клавиши -7) и иметь оператор if для динамической проверки, какая команда нажата.

 public void keyReleased(int keyCode) {

      switch (keyCode) {
        case -6: // left cmd key
             function a();
            return;
        case -7: // right cmd key
//Need this to handle more than one command function

            return;

    }
   //function to handle gamekeys
}

Надеюсь, я достаточно ясно с моей проблемой. Пожалуйста помоги

2 ответа

Решение

По моему мнению, то, что ты хочешь сделать, не возможно. В программной клавише всегда есть команда отмены, а в другой программной кнопке меню (если добавлено более одной команды).

Чтобы получить правильный keyCode, чтобы установить другую функциональную возможность для функциональной клавиши, вы должны получить правильный keyCode, Делать System.out.println("keycode " + keyCode); перед первой строкой в ​​методе keyReleased

Вам необходимо заменить MenuBar класс, если вы хотите сделать пользовательскую обработку клавиш / меню. Просто подкласс MenuBar и определите свой новый класс в пределах LookAndFeel,

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