摆动加速器:inputMap还是菜单?

问题描述

| 我想将加速器添加到组件,例如将撤消/重做(Ctrl-Z,Ctrl-Y)添加到“ 0”,但是要在“ 1”中显示操作及其快捷方式命令,我应该将“ 2” +“ 3”添加到: 分量的
InputMap
到包含分量的帧的“ 1”, 二者皆是 ? 在这种情况下,建议的模式是什么?     

解决方法

           但是,什么时候使用带有加速器的InputMap合适呢? 菜单的工作方式是自动为您添加绑定到InputMap / ActionMap。因此,如果要将其记录在菜单中,则只能将其添加到菜单中,而不能手动映射到组件。 仅将KeyBinding添加到组件的一种情况是,每个组件需要具有不同的Action。例如,您可以在文本组件上为“复制”,“粘贴”创建菜单项。但是其他组件(如JTable)也支持复制和粘贴。在这种情况下,您不能有两个菜单项具有相同的加速器,因此您将表Action直接绑定到该表。     ,        如果您想按照说明进行操作,则请同时执行。这是正常的。 但是,如果撤消/重做仅适用于框架中多个组件中的一个,则我不建议将其添加到框架的菜单中。 (尽管您可以在组件上创建
JPopupMenu
)。     ,        纯粹从用户的角度来看:我更愿意在菜单(或上下文菜单)中查看快捷方式,因为这有助于我学习快捷方式。