我正在做的是,我正在创建动态下拉列表(jcombobox)。我面临第二个组合框的问题。每当我从 list1 中选择一个名字时。列表显示其名称。首先列表没问题,但是当我再次从 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]);
}
}
}
我只提供了我遇到问题的程序的一部分......
最佳答案
每次运行查询时,您并没有清除您的地区列表。这意味着每次查询时都会将先前查询中的项目添加到列表中。
尝试这样做。
districtlist.clear();
while(rs2.next())
{
districtlist.add(rs2.getString(1));
}
关于java - Swing 组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11261621/