【发布时间】:2013-10-15 03:09:11
【问题描述】:
在 JAVAFX 中,我通过 setMnemonicParsing(true) 使用快捷方式
来自谷歌搜索的代码如下
VBox mainLayout = new VBox();
MenuBar menuBar = new MenuBar();
Menu menu1 = new Menu("_File");
menu1.setMnemonicParsing(true);
menu1.getItems().addAll(new MenuItem("Menu 1"), new MenuItem("Menu 2"));
Menu menu2 = new Menu("_Other");
menu2.setMnemonicParsing(true);
menu2.getItems().addAll(new MenuItem("Other 1"), new MenuItem("Other 2"));
menuBar.getMenus().setAll(menu1, menu2);
mainLayout.getChildren().setAll(menuBar);
Scene scene = new Scene(mainLayout, 300, 100);
stage.setTitle("Demo of mnemonic");
stage.setScene(scene);
stage.sizeToScene();
stage.show();
这里是步骤(窗口平台)
- 按Alt键
- 可以看到助记符
- 按F键
- 下拉菜单并获得焦点
- 按箭头(->)键
- 如下错误
java.lang.NullPointerException 在 com.sun.javafx.scene.control.skin.MenuBarSkin.isMenuEmpty(MenuBarSkin.java:728) 在 com.sun.javafx.scene.control.skin.MenuBarSkin.showNextMenu(MenuBarSkin.java:781)
但是当我用鼠标单击菜单栏时,它不会发生。
有什么办法吗?
【问题讨论】:
-
f在您的代码中不是助记符。您可以编辑问题以包含sscce 吗?还请提供有关您的操作系统和 Java 版本的信息。 -
在 Win7 上使用 JavaFX 2.2 测试。这绝对是一个 bug,你可以在 Jira 上提交。
标签: navigation javafx menubar arrow-keys mnemonics