为什么我们必须使用额外的对象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
使用ActionMap
的JScrollPane
来按名称查找动作,并在不直接访问实现的情况下使用它们。
附录:此抽象旨在支持"pluggable look and feel"(L&F)体系结构here。
关于java - 为什么InputMap方法不直接将击键对象映射到 Action 对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13391126/