我在做的是,我正在創建動態下拉列表(jcombobox)。我正面臨着第二個combox的問題。每當我從list1中選擇一個名字的時候。列表顯示其名稱acc。首先列出那是好的,但是當我再次從列表1中選擇一個不同的名稱列表2繼續顯示以前的數據和新的數據... 即時通訊使用函數removeallitems()仍然無法從列表中刪除以前的數據Swing Jcombobox
public void itemStateChanged(ItemEvent e) {
if (e.getSource() == combo) {
statename = (String)combo.getSelectedItem();
try {
ResultSet rs2 =s.executeQuery("select distinct district_name from district_master where state_code=(select state_code from state_master where state_name='"+statename+"') order by district_name ");
while(rs2.next()) {
districtlist.add(rs2.getString(1));
}
list_district = new String [districtlist.size()];
districtlist.toArray(list_district);
} catch(Exception f) {
f.printStackTrace();
System.out.println(f);
}
combo1.setEnabled(true);
combo1.removeAllItems();
for (int i = 0; i < list_district.length; i++) {
combo1.removeItem(list_district[i]);
combo1.addItem(list_district[i]);
}
}
}
我在哪裏我面臨的問題,只給我的計劃的一部分......
下一次,請向我們提供格式代碼... – brimborium
你爲什麼你的列表複製到一個數組中?你可以直接在列表中循環'for(String s:districtlist){combo1.addItem(s);}'。刪除循環中的removeItem,因爲它什麼也不做。下次你點擊這樣的東西時,使用一個調試器。 –
執行查詢不應發生在事件調度線程上。長時間運行的任務應該發生在工作者線程上以確保響應式用戶界面。看看Oracle網站上的[併發中的擺動](http://docs.oracle.com/javase/tutorial/uiswing/concurrency/index.html)教程,瞭解更多關於 – Robin