2

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

以此为例:

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

ActionMap amap = panel.getActionMap();

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

1 回答 1

2

如本所示,an 将InputMapa与标识对应KeyStroke的抽象名称Action相关联。使用该ActionMap名称作为调用特定Action实例actionPerformed()方法的键。作为一个具体的例子,这ScrollTimer使用ActionMapaJScrollPane按名称查找操作并在不直接访问实现的情况下使用它们。

附录:抽象旨在支持此处描述的“可插拔外观”(L&F)架构。

于 2012-11-15T04:11:15.957 回答