我的JavaFX-Application中有3个MenuButtons,每个都填充了CheckMenuItems。 我想获取MenuButton的每个所选项目的文本。我该怎么办?
答案 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);
}));