我想使用资源包(或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
。
答案 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”视为(假的)动作吗?