我试图改变Java应用程序的几个热键我工作呢上,似乎我使用的系统可能无法有三个按钮组合键。目前,我们的JMenuItem项目,我们设置了热键,像这样的电话:

menuItem.setAccelerator(getAcceleratorKey(accelerator));

这里是getAcceleratorKey方法:

    private KeyStroke getAcceleratorKey(int keyCode) {

    return KeyStroke.getKeyStroke(
                    keyCode,
                    Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),
                    false);
}

看来,该方法作为一个参数的键代码只能是与命令按下一个键。因此,如何然后我会做类似的撤销命令移Z'我需要使用不同的类?

有帮助吗?

解决方案

KeyStroke.getKeyStroke()采用改性剂作为参数。它们的组合应该给你你想要什么:

KeyStroke.getKeyStroke(keyCode, 
  java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.META_MASK);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top