哪个更好:getInputMap()。remove(..)或将Action设置为“none”?

时间:2013-09-06 20:05:07

标签: java swing keystroke

Java tuturial表示“要使组件忽略它通常响应的键,您可以使用特殊操作名称”none“。例如,以下代码使组件忽略F2键:< / p>

component.getInputMap().put(KeyStroke.getKeyStroke("F2"), "none");

还有一种方法getInputMap().remove(KeyStroke.getKeyStroke("F2"));

有什么区别?为什么要使用第一种方法?

1 个答案:

答案 0 :(得分:2)

为了扩展VGR的注释,使用“none”只会影响单个组件。在组件上使用remove()也只会影响该组件。

您还可以remove来自LAF InputMap的绑定:

component.getInputMap().getParent().remove(...);

在这种情况下,将删除该类的所有组件的绑定。这将影响已在应用程序中创建或将创建的任何组件。

  

您可以使用特殊操作名称“none”。

此外,“无”不是特殊名称。它只是在ActionMap上执行查找时使用的值。如果没有找到使用此值的Action,则没有任何反应。