2012-04-08 187 views
0

我有一種從數據庫中填充組合框的方法。它使用醫生ID來填充它。問題是,當我將ID更改爲另一個人而不是清除組合框然後重新填充它時,它只是添加到列表的末尾。從組合框中刪除項目

public void FillTimings() { 
    theapptTime.removeAllItems(); 
    theapptTime.repaint(); 

    String strDate = theTdate.getText().trim(); 

    String strDoctor = (String) theTstaffname.getSelectedItem(); 
    System.out.println(strDoctor); 

    try { 
     db.dbConnect(); 
     String docId = db.getdociD(strDoctor); 
     ResultSet rs = db.getTimings(strDate, docId); 

     while (rs.next()) { 
      theapptTime.addItem(rs.getString(1)); 
      rs.close(); 
     } 
    } catch (SQLException e1) { 
     System.out.println("fail"); 
     e1.printStackTrace(); 
    } 
} 

這是代碼。

有人可以幫助我。

+0

這將是有益的,如果你想補充一個標籤的編程語言。這可能引起合適人士的關注。 – DOK 2012-04-08 17:38:45

+0

看看這個鏈接:http://support.microsoft.com/kb/319927 – 2012-04-08 17:45:45

+1

爲了更好地幫助,請發佈[SSCCE](http://sscce.org/)。 但正如文件中提到的那樣,將D/B和因子硬編碼一些數據。 – 2012-04-08 18:06:37

回答

0

你必須首先聲明一個DefaultComboBoxModel

DefaultComboBoxModel dt=new DefaultComboBoxModel(); 

設置您的組合框模型,這個模型

theapptTime.setModel(dt); 

下一個代碼 更新其內部

db.dbConnect(); 
    String docId = db.getdociD(strDoctor); 
    ResultSet rs = db.getTimings(strDate, docId); 
    dt.removeAllElements(); 
    while (rs.next()) { 
     dt.addElement(rs.getString(1)); 
     rs.close(); 
    } 

它會工作!!乾杯!!

+0

我試過這樣做,但仍然沒有工作 – user1236260 2012-04-22 13:05:54

+0

你在哪裏設置組合框模型?在做了我已經解釋發生了什麼?好,如果你可以發佈代碼和最新的輸出,以便我可以建議你進一步.. coz我做了一個示例應用程序,它的工作正常 – 2012-04-26 14:48:58

0

試試這個:

DefaultComboBoxModel dt = (DefaultComboBoxModel) theapptTime.getModel(); 
dt.addElement("item 1");