我有一个用户请求将加速器添加到子菜单(JMenu),这将允许用户按下快捷方式并让相应的子菜单“折叠”,显示其包含的菜单项。
我不记得每个人都见过这样的东西(Java 或任何其他语言)。我们的应用程序是使用 Swing 用 Java 编写的。我们有许多带有加速器的 JMenuItems 运行良好,但是当我尝试向 JMenu 添加加速器时,出现以下异常:
java.lang.Error:没有为 JMenu 定义 setAccelerator()。请改用 setMnemonic()。
我试过使用MenuDemo!代码来进一步试验这个。
这是我尝试过的:
//a submenu
menu.addSeparator();
submenu = new JMenu("A submenu");
submenu.setMnemonic(KeyEvent.VK_S);
submenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U, InputEvent.CTRL_MASK));
最后一行是我添加的,导致异常。
我已经尝试过广泛的谷歌搜索,但我能找到的只是关于如何将加速器添加到 JMenuItem 的文章。
似乎 JMenu 本身不支持此功能。是否有任何解决方法来实现这种行为?