【问题标题】:How do I set keyboard shortcuts for my menubar in a Java application?如何在 Java 应用程序中为我的菜单栏设置键盘快捷键?
【发布时间】:2012-12-10 01:45:28
【问题描述】:

我正在用 Java 开发一个简单的绘图应用程序。我仅限于使用 AWT 菜单栏(不是 JMenuBar),我需要设置一些键盘快捷键,但我找不到如何设置。我需要两个 MenuItem 和三个 CheckBoxMenuItem 的快捷方式。

它会是这样的:

newItem = Ctrl+N
quitItem = Ctrl+Q
rectangleItem = Ctrl+R
ovalItem = Ctrl+O
lineItem = Ctrl+L

【问题讨论】:

  • 你见过this documentation?我不熟悉AWT,但它似乎相关......
  • @Jeff 感谢您的发帖,我检查了它,我正在尝试实现它,但我无法弄清楚我需要什么#import 才能使其工作。它说它是组件的一部分,我已经导入了 awt.*,但它似乎没有工作。此外,它说我需要在 Canvas 上覆盖 isFocusTraversable,但我不知道该怎么做。编辑:哇!这适用于 MenuItems,但不适用于 CheckBoxMenuItems
  • 这只是一个例子,如果你正在实现自己的Canvas 版本——不用担心。您所要做的就是为每个 MenuItem 的构造函数提供第二个参数 - 如该文档的后半部分所示。
  • 添加第二个参数对于每个MenuItem 都非常有效,但它不适用于 CheckBoxMenuItems
  • 好吧,我恐怕这里的输入都没有了——我实际上并没有能力在这台机器上编译代码。不过,您可以考虑问另一个关于 CheckBoxMenuItems 的具体问题 - 问题越具体,您得到的答案就越好。

标签: java keyboard-shortcuts awt menubar


【解决方案1】:

由于 cmets 中的建议似乎至少解决了您的部分问题,我将把它放在这里作为未来用户的答案。

阅读this documentation 的后半部分并更改您的MenuItem 构造函数以将MenuShortcut 作为第二个参数,如下所示(取自链接的文档):

menu.add(new MenuItem("Save...", new MenuShortcut('s'));

【讨论】:

    【解决方案2】:

    如果这样做会更容易:

    放置一个分层窗格?前面有一个玻璃,它将接受整个区域的键盘事件。

    • 不确定什么组件适用于 awt,但确定您有充分的理由使用它,而不仅仅是外观和感觉?

    在那里你设置了快捷方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-10
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多