JavaFX 菜单项名称

JavaFX Menu Item name

我上网查了一下,没找到。当有人点击时如何获取点击的菜单项的名称it.I 想根据点击的菜单项改变场景但我不想创建8种不同的方法。如果我可以获得单击的菜单项的名称,我可以创建 1 个方法,将该名称作为参数并启动 FXML 加载程序并更改场景

如此处所述:https://www.programcreek.com/java-api-examples/?class=javafx.scene.input.MouseEvent&method=getSource

你可以这样做:

private void handleLabel(MouseEvent event) { 
    Node label = (Node) event.getSource();
    System.out.println("Mouse click on label: " + label.getId());
}

在初始化方法中为 MenuItem(s) onAction 事件注册一个内联侦听器。

for (MenuItem item : menu.items()) {
item.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {
        processCategory(item.getText()); // this would do your thing you want to do.
        event.consume();
    });

}