为KeyStroke设置多个蒙版

时间:2015-06-24 22:00:44

标签: java macos swing keyboard-shortcuts keystroke

如何使用多个修改器蒙版创建一个基石?由于缺少明确指定命令掩码,Apple建议使用此方法来获取掩码:

Toolkit.getDefaultToolkit().getMenuShortcutMask();

在一个例子中:

KeyStroke.getKeyStroke(KeyEvent.VK_N, Toolkit.getDefaultToolkit().getMenuShortcutMask();

在OS X上,这将允许我使用此加速器: Cmd + N / ⌘N。它也显示在菜单栏上:

Menu Bar

但是,如果我需要组合修饰蒙版怎么办?像这样: Cmd + Option + N / ⌘⌥N。我试过这个:

KeyStroke.getKeyStroke("command option n");

但它没有做到。 java.awt.Toolkit似乎没有给我这个选项。那么如何添加多个蒙版来设置为加速器呢?

1 个答案:

答案 0 :(得分:1)

工具包的getMenuShortcutKeyMask()在Mac OS X上返回InputEvent.META_MASK。您可以在其中添加InputEvent.ALT_MASK以获取⌥⌘N

private static final int MASK =
    Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
…
KeyStroke.getKeyStroke(KeyEvent.VK_N, MASK | InputEvent.ALT_MASK)

从这个example开始产生如下结果:

image