如何舍弃JSpinner的所有InputMap键绑定?

时间:2018-11-16 15:29:08

标签: java swing key-bindings jspinner

我的Netbeans RCP应用程序在SPACE键上具有全局键绑定,该键会触发操作MyAction。很好。

我的应用程序包含可编辑的JSpinner。如果用户在编辑微调器值时按下SPACE键,它还会触发MyAction,而我不希望这样做。

我找到了一种解决方法:

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

但是我的应用程序中还会有其他全局键绑定...

是否存在一种通用方法来删除JSpinner中的所有键绑定,而无需为每个新键复制以上代码?

1 个答案:

答案 0 :(得分:0)

InputMapActionMap都具有clear()方法,这些方法可以删除所有现有的绑定。不过,您可能不希望清除所有绑定,因为它们很可能还包括箭头键,这些键也用于选择微调器中的下一个先前的值。