在 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 at com.sun.javafx.scene.control.skin.MenuBarSkin.isMenuEmpty(MenuBarSkin.java:728) at com.sun.javafx.scene.control.skin.MenuBarSkin.showNextMenu(MenuBarSkin.java:781 )
但是当我用鼠标单击菜单栏时,它不会发生。
任何解决方案?