有没有其他方法可以删除JComboBox的所有项目,然后删除AllIllItems()?

时间:2013-10-29 21:50:40

标签: java swing jcombobox

有没有其他方法可以删除JComboBox的所有项目,然后删除AllIllItems()?我在mij app中使用了2个JComboBoxes,当你从第一个组合框中选择一个项目时,相关的项目应该显示在第二个组合框中。当我这样做时,这些项目会在已经存在的项目之后继续追加。当我第一次尝试通过使用removeAllItems()清除组合框时,第二个组合框是空的并且每当我更改第一个组合框时都保持空...第一个组合框保留其所有值...有人看到我的问题吗?

festival是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());
}

2 个答案:

答案 0 :(得分:4)

关于,

  

是否有其他方法可以删除JComboBox的所有项目,然后删除AllIllItems()?

简单地给JComboBox一个新模型。

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

答案 1 :(得分:2)

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

 int itemCount = combo.getItemCount();

        for(int i=0;i<itemCount;i++){
            combo.removeItemAt(0);
         }