首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swing Jcombobox

Swing Jcombobox
EN

Stack Overflow用户
提问于 2012-06-29 20:16:35
回答 2查看 174关注 0票数 0

我正在做的是创建动态下拉列表(jcombobox)。我遇到了第二个combox的问题。每当我从list1中选择一个名字的时候。列表显示其名称acc。首先列出,这没问题,但当我再次从list1中选择一个不同的名称时,list2会继续显示以前的数据和新的数据……我正在使用函数removeallitems(),但我仍然无法从list2中删除以前的数据

代码语言:javascript
复制
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]);
    }
  }
}

我只给出了我的程序的一部分,我面临的问题…

EN

回答 2

Stack Overflow用户

发布于 2012-06-29 20:19:29

您并不是在每次运行查询时都清空您的地区列表。这意味着每次查询时,您都会将先前查询中的项添加到列表中。

试着这样做。

代码语言:javascript
复制
districtlist.clear();
while(rs2.next())
{
    districtlist.add(rs2.getString(1));

}
票数 3
EN

Stack Overflow用户

发布于 2012-06-29 20:21:59

就在您的while循环之前,您应该清除您的项目列表:

代码语言:javascript
复制
districtlist.clear();
while(rs2.next()){
  //...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11261621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档