【问题标题】:How can i set a keyboard shortcut to CTRL + S + A for a JMenuItem?如何为 JMenuItem 设置键盘快捷键为 CTRL + S + A?
【发布时间】:2021-04-11 06:55:42
【问题描述】:

我试图为 JMenuItem 添加一个 CTRL + S + A 键盘快捷键。我正在使用以下代码

jMenuItem_a.setAccelerator(KeyStroke.getKeyStroke(
     KeyEvent.VK_A, KeyEvent.CTRL_MASK|KeyEvent.VK_S));

我想要的结果是 CTRL + S + A,但代码竟然是 CTRL + SHIFT + A。有什么问题?为什么我运行时它会将 S 转换为 Shift?

【问题讨论】:

  • 你试过KeyStroke.getKeyStroke(KeyEvent.CTRL_MASK, KeyEvent.VK_A | KeyEvent.VK_S)
  • 我试过了。但它不起作用!原来是CTRL + SHIFT + [未知键码]。在这种情况下,S 也被转换为 shift。
  • 我想要的结果是 CTRL + S + A 你的意思是先按 Ctrl+S 然后在松开这些键后按 A 吗?或者你的意思是同时按下所有三个键 Ctrl+S+A?
  • 不支持。您不能为两个字符创建 KeyStroke。您只能创建 KeyStroke 或两个元键(Control 或 Shift 或 Alt)加上一个字符。
  • 我的意思是同时按下所有三个键。但现在,我明白你的意思了。

标签: java swing keyboard-shortcuts key-bindings


【解决方案1】:

添加三个键的快捷键是不可能的,除非其中两个是元键(Control、Shift 或 Alt)。快捷方式中只能使用一个字符。

【讨论】:

    猜你喜欢
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 2010-12-30
    • 2011-05-26
    • 1970-01-01
    • 2017-07-31
    相关资源
    最近更新 更多