获取选择的menubutton项目

时间:2017-07-04 12:37:44

标签: javafx menuitem

我的JavaFX-Application中有3个MenuButtons,每个都填充了CheckMenuItems。 我想获取MenuButton的每个所选项目的文本。我该怎么办?

1 个答案:

答案 0 :(得分:0)

选择所有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);
}));