获取menubutton的选中项

Get selected items of menubutton

我的 JavaFX 应用程序中有 3 个菜单按钮,每个按钮都填充了 CheckMenuItems。 我想获取 MenuButton 的 每个 选定项的文本。我该如何进行?

获取所有 MenuItems,选择过滤器并将它们映射到 String

MenuButton mb = new MenuButton();
mb.getItems().addAll(new CheckMenuItem("One"), new CheckMenuItem("Two"), new CheckMenuItem("Three"));
mb.getItems().stream().forEach((MenuItem menuItem) -> menuItem.setOnAction(ev -> {
    final List<String> selectedItems = mb.getItems().stream()
            .filter(item -> CheckMenuItem.class.isInstance(item) && CheckMenuItem.class.cast(item).isSelected())
            .map(MenuItem::getText)
            .collect(Collectors.toList());
    System.out.println(selectedItems);
}));