gpt4 book ai didi

java - Swing 加速器 : inputMap or menu?

转载 作者:行者123 更新时间:2023-11-30 07:32:38 24 4
gpt4 key购买 nike

我想给组件添加一个加速器,比如对 JTextComponent 执行撤消/重做(Ctrl-Z、Ctrl-Y),但想在JMenu,我应该将 KeyStroke + AbstractAction 添加到:

  • 组件的InputMap
  • 到包含组件的框架的 JMenu
  • 对双方?

在这种情况下推荐的模式是什么?

最佳答案

But when is it proper to use an InputMap with accelerators, then ?

菜单的工作方式是自动为您添加绑定(bind)到 InputMap/ActionMap。因此,如果您希望将其记录在菜单中,那么您只需将其添加到菜单中,而不是对组件进行手动映射。

一种情况下,您只需要将 KeyBinding 添加到组件,即您需要为每个组件设置不同的 Action。例如,您可以为文本组件上的“复制”、“粘贴”创建菜单项。但是 JTable 等其他组件也支持复制和粘贴。在这种情况下,您不能有两个具有相同快捷键的菜单项,因此您将表 Action 直接绑定(bind)到表。

关于java - Swing 加速器 : inputMap or menu?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6452430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com