2

是否有另一种方法来删除 JComboBox 的所有项目然后 removeAllItems()?我在 mij 应用程序中使用了 2 个 JComboBoxes,当您从第一个组合框中选择一个项目时,相关项目应显示在第二个组合框中。当我这样做时,这些项目只会在已经存在的项目之后继续附加。然后,当我第一次尝试使用 removeAllItems() 清除组合框时,第二个组合框为空,并且每当我更改第一个组合框时都保持为空...第一个组合框保留其所有值...有人看到我的问题吗?

节日是 JComboBox:

private JComboBox festival;
private JComboBox zone;

...

public void fillFestivalList(){
    festival.removeAllItems();
    List festivals = OP.fillFestivalList();

    for(Object fest: festivals)
        festival.addItem(fest.toString());
}

public void fillZoneList(String festival){
    zone.removeAllItems();
    List zones = OP.fillZoneList(festival);

    for(Object zoneItem: zones)
        zone.addItem(zoneItem.toString());
}
4

2 回答 2

4

关于,

是否有另一种方法来删除 JComboBox 的所有项目然后 removeAllItems()?

只需给 JComboBox 一个新模型。

我会创建一个新的DefaultComboBoxModel<T>,用最新的条目填充它,然后调用setModel(...)我的 JComboBox,在需要时传入新模型。

于 2013-10-29T21:52:33.747 回答
2

您也可以通过这种方式删除所有项目,但最好像@Hovercraft Full Of Eels 所说的那样给 JCombobox 一个新的 DefaultComboBoxModel

 int itemCount = combo.getItemCount();

        for(int i=0;i<itemCount;i++){
            combo.removeItemAt(0);
         }
于 2013-10-30T04:34:33.857 回答