... возвращает только ту клавишу, которая была нажата в последнее время, и не сообщает, может ли быть нажата какая-либо другая клавиша
То, как вы используете его в своем фрагменте кода, keyboard_key
всегда будет содержать только ту клавишу, которая была нажата в последнее время - просто потому, что в ней «нет места» для хранения чего-то большего.
Попробуйте использовать Vector для «запоминания» различных нажатых клавиш.
//define in your class:
Vector keysPressed = new Vector(); // to keep track of keys pressed
//overrides the function keyPressed from "lcdui.Canvas"
protected void keyPressed(int keyCode){
keysPressed.addElement(new Integer(keyCode));
}
Дополнительное примечание, учитывая вопрос, вы можете получить пользу от изучения основ языка Java. В Интернете доступно множество учебных пособий - просто поищите в Интернете что-то вроде «Java Getting Started» .
В зависимости от требований вашего приложения рассмотрите возможность переопределения keyRepeated вместе с keyPressed.
Если вы намереваетесь обрабатывать нажатия клавиш в игровом цикле ( «несколько клавиш одновременно» предполагают, что вы можете иметь это в виду), рассмотрите другой вариант, предоставляемый lcdui.game.GameCanvas
API, метод getKeyStates ()
Получает состояния физических игровых ключей. Каждый бит в возвращаемом целом числе представляет определенный ключ на устройстве. Бит клавиши будет равен 1, если клавиша в данный момент нажата или была нажата хотя бы один раз с момента последнего вызова этого метода. Бит будет равен 0, если клавиша в данный момент поднята и не нажималась вообще с момента последнего вызова этого метода. Такое поведение с фиксацией гарантирует, что быстрое нажатие и отпускание клавиши всегда будет зафиксировано игровым циклом, независимо от того, насколько медленно он работает ...