JCombobox中的ResultSet

时间:2013-10-05 14:49:25

标签: java sql swing jcombobox resultset

我想用sql结果填充Jcombobox,但为什么我在这里得到一个ArrayIndexOufOfBounds? JCombobox就是这样:countrybox = new JComboBox(countries);

    int x = 0;
    String query = "SELECT UNIQUE country FROM criminals ORDER BY country ASC";
    System.out.println(query);
    Statement stmt = connection.createStatement();
    ResultSet rset = stmt.executeQuery(query);

    while (rset.next()) {
        countries[x] = rset.getString(1);
        x++;
      }

2 个答案:

答案 0 :(得分:4)

无需临时存储。您可以使用ArrayList:

直接将项目加载到组合框中
comboBox.addItem(...);

或者使用Vector而不是ArrayList,因为DefaultListModel使用Vector来保存数据。

答案 1 :(得分:1)

显然,结果集的元素多于数组countries。你应该使用一个动态增长的ArrayList

如果您在填充ArrayList后绝对需要一个数组,那么您可以使用其方法toArray从中获取数据。

修改

正如@camickr JComboBox所建议的那样constructor,其中Vector为参数。就像ArrayList一样,Verctor也可以自动增长。因此,您可以使用它而不是采用数组的那个。更好的是,使用方法addItem将元素直接添加到组合框中。