2014-05-22 95 views
0

當我點擊myJtabel中的一行時,我想升級myComboBox的列表項。我做了我必須做的纔能有一個好的結果。但是,當一個unpgrade myComboBox我有一個真正的最後一個項目,每一次我都做了升級增加了一個真正的項目升級JCombobox的項目

它不會在我的課去什麼

myUpgradeCombo:

class myUpgradeCombo { 

public static <E> void upgrade_(JComboBox<E> combo, int index) 
    { 
     E item = combo.getItemAt(index); 
     combo.removeItemAt(index); 
     combo.insertItemAt(item, 0); 
     combo.setSelectedIndex(0); 
    } 

    public static <E> boolean upgrade(JComboBox<E> combo, E item) 
    { 
     for (int index=0; index<combo.getItemCount(); index++) 
     { 
      if (combo.getItemAt(index).toString().equals(item.toString())) 
      { 
       upgrade_(combo,index); 

       return true; 
      } 
     } 
     return false ; 
    } 
} 

當myJtable鼠標按下:

int rec = myJtableF.getSelectedRow(); 
String idf = myJtableF.getValueAt(rec, 1).toString(); 
String format = myJtableF.getValueAt(rec, 2).toString(); 
String platef = myJtableF.getValueAt(rec, 3).toString(); 
this.myCombo.addItem(myUpgradeCombo.upgrade(myCombo, new FC(format,platef,idf))); 

作爲結果myCombo:

...... MySelectedItem 
.......Firstitem 
.......SecondItem 
.......ThirdItem 
.......fourthItem 
.......true 
.......true 

感謝,

回答

0

很好,因爲你myUpgradeCombo.upgrade(myCombo,新的FC(格式,platef,IDF))的返回值傳遞給this.myCombo.addItem()。

所以真正從升級()返回被添加爲您的組合框中選擇一個項目,在這一行:

this.myCombo.addItem(myUpgradeCombo.upgrade(myCombo, new FC(format,platef,idf))); 
+0

我該怎麼做才能解決這個故障? –

+0

那麼取決於addItem()的含義。如果它只是在那裏,因爲你從其他地方複製了文本,只需刪除該行並將其替換爲: 'myUpgradeCombo.upgrade(myCombo,new FC(format,platef,idf));' – Icewind

+0

非常感謝你,我的愚蠢過錯不是來自別的地方。 –