фокус для Java-апплетов - PullRequest
       9

фокус для Java-апплетов

2 голосов
/ 22 ноября 2010

Я сделал Java-игру, основанную на JPanel. Когда я добавляю его в JFrame, он отлично работает, а когда я добавляю его в JApplet и тестирую его с помощью встроенного в апплет тестера Eclipse, он работает отлично. Однако, когда я пытаюсь запустить апплет через HTML-сайт, он не работает. Он загружается, но не требует ввода с клавиатуры. У меня настроено, где «нажатие s» запускает игру, но даже когда я нажимаю на игру и нажимаю s, ничего не происходит.

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

1 Ответ

1 голос
/ 22 ноября 2010

, но не требует ввода с клавиатуры.

KeyEvents передаются только компоненту, который имеет фокус.Я полагаю, что ваша панель не имеет фокуса, поэтому убедитесь, что вы делаете панель фокусируемой, а затем используйте метод requestFocusInWindow (), как только графический интерфейс станет видимым, чтобы убедиться, что панель имеет фокус.Решение проблемы - не полагаться на KeyListener, а вместо этого использовать привязки клавиш.Swing был разработан для использования привязок клавиш.

Подробнее о Назначения клавиш .

...