Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Установите пользовательский KeyEventDispatcher. Класс KeyboardFocusManager является также хорошим местом для этой функциональности.
Для каждого окна используйте JComponent.registerKeyboardAction
с условием WHEN_IN_FOCUSED_WINDOW
. Кроме того, используйте:
JComponent.getInputMap(WHEN_IN_FOCUSED_WINDOW).put(keyStroke, command);
JComponent.getActionMap().put(command,action);
, как описано в эти документы .
registerKeyboardAction API