我的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中的所有键绑定,而无需为每个新键复制以上代码?
答案 0 :(得分:0)
InputMap
和ActionMap
都具有clear()
方法,这些方法可以删除所有现有的绑定。不过,您可能不希望清除所有绑定,因为它们很可能还包括箭头键,这些键也用于选择微调器中的下一个先前的值。