java - 为什么InputMap方法不直接将击键对象映射到 Action 对象?

标签 java swing event-handling key-bindings

为什么我们必须使用额外的对象ActionMap
是什么意思?

以此为例:

imap.put(KeyStroke.getKeyStroke("ctrl Y"), "panel.yellow");

ActionMap amap = panel.getActionMap();

amap.put("panel.yellow", yellowAction);

最佳答案

example所示,InputMapKeyStroke 与标识相应 Action 的抽象名称相关联。 ActionMap 使用该名称作为调用特定 Action 实例的 actionPerformed() 方法的键。作为一个具体的例子,这个ScrollTimer使用 JScrollPaneActionMap 按名称查找操作并使用它们,而无需直接访问实现。

附录:抽象旨在支持 "pluggable look and feel" (L&F) 架构描述here .

关于java - 为什么InputMap方法不直接将击键对象映射到 Action 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13391126/

相关文章:

c++ - bada 编程 - 按钮事件处理程序

c# - for循环中事件处理程序的匿名方法

java - 用java加载neo4j数据库

java - 如何使用Digester将XML解析为Java对象

JAVA-Android-根据 CA 证书(颁发者证书)验证 X509 证书

java - GridBagLayout 问题 : TextArea overlapping MenuBar

c# - WPF 绑定(bind)与事件处理

java - 理解同步和实现队列

java - 展开和折叠图标

java - JMenuBar 未出现(仅显示细灰线)