为什么我们必须使用额外的对象ActionMap
?
是什么意思?
以此为例:
imap.put(KeyStroke.getKeyStroke("ctrl Y"), "panel.yellow");
ActionMap amap = panel.getActionMap();
amap.put("panel.yellow", yellowAction);
最佳答案
如example所示,InputMap
将 KeyStroke
与标识相应 Action
的抽象名称相关联。 ActionMap
使用该名称作为调用特定 Action
实例的 actionPerformed()
方法的键。作为一个具体的例子,这个ScrollTimer
使用 JScrollPane
的 ActionMap
按名称查找操作并使用它们,而无需直接访问实现。
附录:抽象旨在支持 "pluggable look and feel" (L&F) 架构描述here .
关于java - 为什么InputMap方法不直接将击键对象映射到 Action 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13391126/