在Java(OSX)中设置三个按钮加速键热键

时间:2009-11-18 23:01:08

标签: java swing macos keycode acceleratorkey

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

menuItem.setAccelerator(getAcceleratorKey(accelerator));

这是getAcceleratorKey方法:

    private KeyStroke getAcceleratorKey(int keyCode) {

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

这个方法作为参数的keyCode似乎只能用命令按下一个键。那么我怎么能像Command-shift z那样做撤销呢?我需要使用不同的课程吗?

1 个答案:

答案 0 :(得分:1)

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

KeyStroke.getKeyStroke(keyCode, 
  java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.META_MASK);