0

我正在尝试更改我正在使用的 java 应用程序中的一些热键,并且似乎我使用的系统可能不适用于三个按钮组合键。我们目前有一个 JMenuItem 项目,我们通过这样的调用设置热键:

menuItem.setAccelerator(getAcceleratorKey(accelerator));

这是 getAcceleratorKey 方法:

    private KeyStroke getAcceleratorKey(int keyCode) {

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

看来这个方法作为参数的keyCode只能是用命令按下的一个键。那么,我将如何执行 Command-shift z 之类的操作来撤消?我需要使用不同的课程吗?

4

1 回答 1

1

KeyStroke.getKeyStroke() 将修饰符作为参数。它们的组合应该给你你想要的:

KeyStroke.getKeyStroke(keyCode, 
  java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.META_MASK);
于 2009-11-18T23:06:06.280 回答