为什么我们必须使用额外的对象ActionMap
?
什么意思?
以这个为例:
imap.put(KeyStroke.getKeyStroke("ctrl Y"), "panel.yellow");
ActionMap amap = panel.getActionMap();
amap.put("panel.yellow", yellowAction);
如本例所示,InputMap
将KeyStroke
与标识相关Action
的抽象名称相关联。ActionMap
使用该名称作为键来调用特定Action
实例的actionPerformed()
方法。作为一个具体示例,此ScrollTimer
使用JScrollPane
的ActionMap
按名称查找操作,并在不直接访问实现的情况下使用它们。
附录:该抽象旨在支持此处描述的"可插拔外观和感觉"(L&F)架构。