2016-01-12 4 views
-1

Когда я использую JFrame и у меня есть JPanel и некоторые другие компоненты (например, в JButton), я назначить Wсекd ключи к JFrame(KeyEvent), но JPanel не отвечает, когда я нажимаю клавишу.JPanel не реагирует на KeyEvents

Только, если JPanel является единственным компонентом в JFrame, то JPanel ответит на ключевые события. Как изменить этот фокус так, чтобы JFrame отправил ключевые события в JPanel.

ответ

2

Как все вопросы, связанные с KeyListener не работают, используйте Key Bindings API, он будет решать вопросы, связанные с фокусными KeyListener

Любых предложений использовать requestFocusInWindow являются взломами и заставят вас больше проблем, то они решают. Используйте Key Bindings API, он был разработан, чтобы помочь решить эту проблему.

+0

Как работает keyBindings? – pebble225

+0

[Как использовать привязки клавиш] (http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html) – MadProgrammer

+0

У меня есть достаточно сложная графика для рисования по графике, так или иначе. Я вижу, что эти люди создают классные Java-игры с графикой, и они делают это намного проще, чем на самом деле для меня. Я так расстроен тем, как сделать основные основы простой графической игры. Именно этот барьер замедлил меня почти на год. Я не знаю, что делать! D: Это лучшее, что я сделал: https://www.dropbox.com/sh/v6tacqvth1js5yj/AABDmGHnwCkSF8ipy0pIsIDta?dl=0 – pebble225