我有一个使用JMenu创建的菜单。我想为该菜单分配一个快捷键Alt-F。我使用setMnemonic('F')来做到这一点,但是菜单无法识别助记符。
解决或调试此问题的最佳方法是什么?我发现设置断点并没有太大帮助。
谢谢。
代码段:
//higher up in variable declaration
/** Menus on the menu bar */
private JMenu uiFindMnu = new JMenu("Find");
...
//inside the constructor
// set mnemonic for the Find menu
uiFindMnu.setMnemonic('F');
最佳答案
在类构造函数内部(扩展JFrame):
JMenu helpmenu = new JMenu("File");
helpmenu.setMnemonic('F');
JMenuBar menubar = new JMenuBar();
menubar.add(helpmenu);
setJMenuBar(menubar);
这对我来说很好。您必须提供有关您代码的更多详细信息,以便我提供更好的答案。至于对SWING或任何应用程序GUI进行故障排除,我可以提供的最佳建议之一就是创建最简单的方案。我保留了一个简单的JFrame模板,可以在其中放入这样的简单代码进行测试。一旦知道它可以在最简单的情况下运行,您就可以返回到项目并发现GUI的其他部分正在与此功能发生冲突。
出于好奇,您在构造函数中不会碰巧隐藏了一个类变量'uiFindMnu',对吗?我会仔细检查以确保您正在调用setMnemonic()的变量是添加到您的MenuBar(并实际显示)的变量。