Как отбросить все привязки клавиш InputMap для JSpinner? - PullRequest
0 голосов
/ 16 ноября 2018

Мое приложение Netbeans RCP имеет привязку глобального ключа к клавише SPACE, которая запускает действие MyAction.Работает нормально.

Мое приложение содержит редактируемый JSpinner.Если пользователь нажимает пробел во время редактирования значения счетчика, он также запускает MyAction, и я не хочу этого.

Я нашел обходной путь с:

mySpinner.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke("SPACE"), "doNothing");
mySpinner.getActionMap().put("doNothing", new DoNothingAction());

Но у меня будет другойглобальные привязки ключей в моем приложении ...

Существует ли универсальный способ удаления всех привязок ключей в JSpinner без репликации вышеуказанного кода для каждого нового ключа?

1 Ответ

0 голосов
/ 16 ноября 2018

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

...