为什么 InputMap 方法不直接将击键对象映射到操作对象?



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

以这个为例:

imap.put(KeyStroke.getKeyStroke("ctrl Y"), "panel.yellow");
ActionMap amap = panel.getActionMap();
amap.put("panel.yellow", yellowAction);

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

附录:该抽象旨在支持此处描述的"可插拔外观和感觉"(L&F)架构。

相关内容

  • 没有找到相关文章

最新更新