【问题标题】:Java JMenuItem Accelator Snow LeopardJava JMenuItem 加速器雪豹
【发布时间】:2009-12-09 19:34:05
【问题描述】:
about = new JMenuItem("About");
about.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A((Toolkit.getDefaultToolkit().getMenuShortcutMask()))));
JMenu help = new JMenu("Help");
help.add(about);

我想知道为什么我的加速器不工作。我正在使用 JavaSe-1.6 VM 在雪豹中运行它。如果我拉下菜单然后尝试按键顺序,它们确实有效。谢谢

【问题讨论】:

    标签: java jmenubar


    【解决方案1】:

    哦,我想我明白真正的问题了:

    加速器仅在可见时才起作用 - 它们允许您通过使菜单项中的某些字符“变魔术”来在菜单中移动。

    我认为您正在寻找的是助记符。当按下相关键时,它们会从任何地方触发您的菜单项。

    常用的助记符是 Alt-F4 杀死程序(即 Cmd-Q 适合你), Ctrl-S 保存, Ctrl-C复制等

    【讨论】:

      【解决方案2】:

      第 2 行在我看来是个错误。

      不应该是这样的

      getKeyStroke(KeyEvent.VK_A, Toolkit...getMenuShortcutMask()) 
      

      ?

      即getKeyStroke 有 2 个参数,以逗号分隔。

      顺便说一句,使用Toolkit...getMenuShortcutMask 获取依赖于操作系统的密钥是一个非常聪明的想法。我从没想过这样做。

      【讨论】:

        【解决方案3】:

        抱歉,第二行不正确。我一定是不小心添加了那个 K :-) 我之前使用过助记符,但它也必须下拉菜单才能起作用。我只想要一个键盘快捷键。我改用加速器是因为OSX java doc suggests

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-11-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-02
          • 2010-11-02
          相关资源
          最近更新 更多