java - Swing 组合框

标签 java swing jdbc jcombobox itemlistener

我正在做的是,我正在创建动态下拉列表(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/

相关文章:

java - 带有可序列化列表的 SonarQube catch 22

java - 在多实例应用程序中存储文件

java - java - 如何在Java中迭代时在List中添加元素?

java - 在 JDBC 中使用 class.forName

java - "java -version"命令在 Inno Setup 中有不同的结果

java - 如何在我的代码中添加与计时器一起使用的 JProgressBar?

java - 如何解决 java.net.MalformedURLException : no protocol:?

java - 如何在jbutton中创建一个方法?

sql - JDBC 规范是否阻止将 '?' 用作运算符(引号外)?

java - Microsoft JDBC 中的 JTDS 属性相当于什么?