2013-10-29 24 views
1

有另一种方式来删除的JComboBox的所有项目,然后removeAllItems()?我在mij app中使用了2个JComboBoxes,当你从第一个组合框中选择一个项目时,相关的项目应该显示在第二个组合框中。当我这样做时,这些项目只是在已经存在的项目之后继续追加。当我那么首先尝试使用removeAllItems()来清除组合框,第二个组合框为空,每当我改变第一组合框保持为空。第一个组合框保持它的所有值...有谁看到我的问题吗?有另一种方式来删除的JComboBox的所有项目,然后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()); 
} 
+0

显然,无论这是不是真正的代码或你正在调用错误的方法。 – EJP

+0

我刚才复制的我因子评分是必要的部分。如果你想我可以添加你需要解决的问题 –

回答

3

关于,

有另一种方式来删除一个JComboBox,然后removeAllItems()的所有项目?

只需给JComboBox中的新模式。

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

+0

的代码,这样,而不是添加项目到JComboBox中区的,我应该将它们添加到DefaultComboBoxModel zoneModel然后做zone.setModel(zoneModel)? –

+0

+1,@MaartenMeeusen看到http://stackoverflow.com/a/5605775/131872一个简单的例子 – camickr

+0

哦,你们,那没有的伎俩!谢谢! –

1

您也可以删除这种方式中的所有项目, 但不如给JComboBox中新DefaultComboBoxModel喜欢的方式@Hovercraft全鳝说

int itemCount = combo.getItemCount(); 

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