java如何使用Javafx从菜单按钮中删除菜单项
我正在尝试创建一个动态大小的菜单按钮
我正在设计一个图书馆程序。书放在书架上。在整个项目过程中,货架的数量可能会增加或减少。 我想制作一个菜单按钮,可以反映库中的书架-如果书架数量增加,菜单项集应该增加,如果书架数量减少,菜单项集应该减少。 这是我当前的代码。但是,它不会删除任何菜单项。此外,它还复制了已包含的所有菜单项
previous code omitted…
//the button “shelfBtn.getItems” is a MenuButton defined elsewhere
Button btn = new Button(“Refresh”);
btn.setTranslateX(-20);
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
for(String shelf : shelfs){
MenuItem newShelf = new MenuItem(shelf);
newShelf.setOnAction(new EventHandler<ActionEvent() {
@Override
public void handle(ActionEvent event) {
// ignore this
shelfField.setText(shelf);
}
});
shelfBtn.getItems().add(newShelf);
}
}
});
remaining code omitted…
我还尝试使用迭代来限制额外的菜单项的创建,但没有效果
此外:
1)是否有办法删除菜单项
2)是否有方法清除菜单按钮
谢谢
# 1 楼答案
只需修改}:
items
{与任何
List
一样,有多种方法可以删除元素并将其添加到列表中,如add
、remove
、clear
等使用
Set
可以防止添加重复项,例如