2013-10-29 25 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); 
     } 
相關問題