草庐IT

Java Swing JMenu 助记符

coder 2024-03-12 原文

我有一个使用 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(并实际显示)的变量。

关于Java Swing JMenu 助记符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4434894/

有关Java Swing JMenu 助记符的更多相关文章

  1. Java Swing JMenu 助记符 - 2

    我有一个使用JMenu创建的菜单。我想为这个菜单分配一个快捷键Alt-F。我使用setMnemonic('F')来做到这一点,但菜单无法识别助记符。解决或调试此问题的最佳方法是什么?我发现设置断点并没有多大帮助。谢谢。代码片段://higherupinvariabledeclaration/**Menusonthemenubar*/privateJMenuuiFindMnu=newJMenu("Find");...//insidetheconstructor//setmnemonicfortheFindmenuuiFindMnu.setMnemonic('F');

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

    我想使用资源包(或ResourceMap)将助记符分配给JMenu。因此,例如,没有资源文件的代码将是...JMenufileMenu=newJMenu();fileMenu.setText("File");//thiswouldbereadfromaresourcefilefileMenu.setMnemonic('F');//butthedocssaythisisobsoletefileMenu.setMnemonic(KeyEvent.VK_F);那么如何将KeyEvent.VK_F放入资源文件中呢?对于JMenuItem我可以用Action来完成,但这是JMenu。

  3. c# - 键盘助记符应该如何本地化? - 2

    关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭9年前。Improvethisquestion是否有本地化(国际化)键盘助记符的标准方法?例如,在Windows资源管理器(英语)中,如果用户键入Alt-F,然后键入C,文件菜单打开,然后选择关闭操作。对于使用qwerty的语言,我想您可以根据翻译的单词更改助记符。但是像中文这样的语言呢?我见过一些程序将助记符放在括号中的标签后面,但似乎不太理想。转载:https://ux.stackexchange.com/questions/39074

随机推荐