为 KeyStroke 设置多个掩码
Set Multiple Masks for KeyStroke
我将如何着手制作具有多个修改器蒙版的梯形石?由于缺少明确指定命令掩码,Apple 建议使用此方法来获取掩码:
Toolkit.getDefaultToolkit().getMenuShortcutMask();
举个例子:
KeyStroke.getKeyStroke(KeyEvent.VK_N, Toolkit.getDefaultToolkit().getMenuShortcutMask();
在 OS X 上,这将允许我使用此加速器:Cmd+N/ ⌘N。它也显示在菜单栏上:
但是,如果我需要组合修改器蒙版怎么办?像这样:Cmd+Option+N/⌘⌥N。我试过这个:
KeyStroke.getKeyStroke("command option n");
但它并没有这样做。 java.awt.Toolkit
似乎没有给我这个选项。那么如何添加多个掩码设置为加速器呢?
工具包的 getMenuShortcutKeyMask()
returns InputEvent.META_MASK
在 Mac OS X 上。您可以向其添加 InputEvent.ALT_MASK
以获得 ⌥⌘N.
private static final int MASK =
Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
…
KeyStroke.getKeyStroke(KeyEvent.VK_N, MASK | InputEvent.ALT_MASK)
以此 example 开始产生如图所示的结果:
我将如何着手制作具有多个修改器蒙版的梯形石?由于缺少明确指定命令掩码,Apple 建议使用此方法来获取掩码:
Toolkit.getDefaultToolkit().getMenuShortcutMask();
举个例子:
KeyStroke.getKeyStroke(KeyEvent.VK_N, Toolkit.getDefaultToolkit().getMenuShortcutMask();
在 OS X 上,这将允许我使用此加速器:Cmd+N/ ⌘N。它也显示在菜单栏上:
但是,如果我需要组合修改器蒙版怎么办?像这样:Cmd+Option+N/⌘⌥N。我试过这个:
KeyStroke.getKeyStroke("command option n");
但它并没有这样做。 java.awt.Toolkit
似乎没有给我这个选项。那么如何添加多个掩码设置为加速器呢?
工具包的 getMenuShortcutKeyMask()
returns InputEvent.META_MASK
在 Mac OS X 上。您可以向其添加 InputEvent.ALT_MASK
以获得 ⌥⌘N.
private static final int MASK =
Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
…
KeyStroke.getKeyStroke(KeyEvent.VK_N, MASK | InputEvent.ALT_MASK)
以此 example 开始产生如图所示的结果: