我正在做的是创建动态下拉列表(jcombobox)。我遇到了第二个combox的问题。每当我从list1中选择一个名字的时候。列表显示其名称acc。首先列出,这没问题,但当我再次从list1中选择一个不同的名称时,list2会继续显示以前的数据和新的数据……我正在使用函数removeallitems(),但我仍然无法从list2中删除以前的数据
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]);
}
}
}我只给出了我的程序的一部分,我面临的问题…
发布于 2012-06-29 20:19:29
您并不是在每次运行查询时都清空您的地区列表。这意味着每次查询时,您都会将先前查询中的项添加到列表中。
试着这样做。
districtlist.clear();
while(rs2.next())
{
districtlist.add(rs2.getString(1));
}发布于 2012-06-29 20:21:59
就在您的while循环之前,您应该清除您的项目列表:
districtlist.clear();
while(rs2.next()){
//...
}https://stackoverflow.com/questions/11261621
复制相似问题