Мнемоника меню Java в файлах ресурсов - PullRequest
9 голосов
/ 06 февраля 2009

Я хотел бы назначить мнемонику для JMenu, используя пакеты ресурсов (или ResourceMap). Так, например, код без файла ресурсов будет ...

JMenu fileMenu = new JMenu();
fileMenu.setText("File");   // this would be read from a resource file
fileMenu.setMnemonic('F');  // but the docs say this is obsolete
fileMenu.setMnemonic(KeyEvent.VK_F);

Итак, как мне поместить KeyEvent.VK_F в файл ресурсов?

Для JMenuItem я могу сделать это с помощью действий, но это JMenu.

Ответы [ 3 ]

12 голосов
/ 06 февраля 2009

Класс Java javax.swing.KeyStroke устраняет разрыв:

JMenu fileMenu = new JMenu();
String mnemonic = // string from localization
fileMenu.setMnemonic(KeyStroke.getKeyStroke(mnemonic).getKeyCode());

Ускорители не поддерживаются в течение JMenu с, только в течение JMenuItem с (что имеет смысл, поскольку они вызывают действие без использования меню вообще).

1 голос
/ 06 февраля 2009

Внутри файла ресурсов используйте ускоритель

add.Action.accelerator = control A

0 голосов
/ 06 февраля 2009

Вы могли бы сделать это аналогичным образом и рассматривать «FileMenu» как (поддельное) действие?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...