JavaFX - 不能在 MenuItem 中使用下划线

eri*_*c.m 3 java javafx menuitem

当我遇到一个非常奇怪的问题时,我正在使用 JavaFX 创建一个程序。我想用包含下划线 (_) 的文本创建一个 MenuItem,但是当显示该文本时,下划线消失了。这是一个示例代码:

public class JavaFXTest extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {

        BorderPane mainPane = new BorderPane();

        MenuBar menuBar = new MenuBar();
        Menu menu = new Menu("Menu");
        menuBar.getMenus().add(menu);

        MenuItem item = new MenuItem("Test_underscore");
        menu.getItems().add(item);

        mainPane.setTop(menuBar);

        primaryStage.setScene(new Scene(mainPane, 890, 570));
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

它不显示“Test_underscore”,而是显示:

在此处输入图片说明

有谁知道这里会发生什么?

fab*_*ian 6

由于该mnemonicParsing属性true用于项目,因此下划线受到特殊处理。设置此属性以false防止出现这种情况:

item.setMnemonicParsing(false);
Run Code Online (Sandbox Code Playgroud)