资源文件中的Java菜单助记符

时间:2009-02-06 17:15:36

标签: java internationalization

我想使用资源包(或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 个答案:

答案 0 :(得分:12)

Java的javax.swing.KeyStroke类填补了这个空白:

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

JMenu不支持加速器,仅适用于JMenuItem s(这是有道理的,因为它们会在不使用菜单的情况下调用操作)。

答案 1 :(得分:1)

在资源文件中使用加速器

add.Action.accelerator = control A

答案 2 :(得分:0)

你可以用类似的方式来做,并将“FileMenu”视为(假的)动作吗?