2009-02-06 2 views
8

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

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.

ответ

11

Явы ликвидирует разрыв:

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

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

0

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

1

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

add.Action.accelerator = управление javax.swing.KeyStroke класс A

Смежные вопросы