Java - 将加速器添加到JMenuItem

时间:2012-04-15 08:48:11

标签: java swing accelerator jmenuitem

我想将加速器设置为JMenuItem。

现在我正在设置它

openFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK));

并且它正在工作,但我不希望ctrl + o作为加速器。我想要'space'作为加速器,但我没有找到任何方法可以生成对应于'space'的KeyStroke。

KeyStroke.getStroke()

要么使用char或(int,int)。我也没有发现任何与空间相对应的字符。

2 个答案:

答案 0 :(得分:3)

  

..没有找到任何与空间相对应的字符。

KeyEvent.VK_SPACE

如果Swing忽略它,我不会感到惊讶,因为' '是一个不寻常的&很难看到加速器。

答案 1 :(得分:3)

大多数UI代表使用KeyEvent.VK_SPACE:{U+23D8)等内容呈现METRICAL TETRASEME加速器。例如,Action可能包含以下行:

static final int MASK = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, MASK));