1

JMenuItem にアクセラレータを設定したい。

今、私はこのように設定しています

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

それは機能していますが、ctrl + oをアクセラレータとして使用したくありません。アクセラレータとして「スペース」が必要ですが、「スペース」に対応する KeyStroke を生成できる方法が見つかりませんでした。

KeyStroke.getStroke()

char または (int, int) を取ります。スペースに対応する文字も見つかりませんでした。

4

2 に答える 2

3

ほとんどの UI デリゲートは、 : ⏘ ( )KeyEvent.VK_SPACEなどを使用してアクセラレータをレンダリングします。たとえば、次の行が含まれる場合があります。METRICAL TETRASEMEU+23D8Action

static final int MASK = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, MASK));
于 2012-04-15T10:19:31.973 に答える
3

..スペースに対応する文字も見つかりませんでした。

KeyEvent.VK_SPACE

Swing がそれを無視しても、私は驚かないでしょう' '

于 2012-04-15T09:04:41.490 に答える