我想用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++;
}
答案 0 :(得分:4)
无需临时存储。您可以使用ArrayList:
直接将项目加载到组合框中comboBox.addItem(...);
或者使用Vector而不是ArrayList,因为DefaultListModel使用Vector来保存数据。
答案 1 :(得分:1)
显然,结果集的元素多于数组countries
。你应该使用一个动态增长的ArrayList。
如果您在填充ArrayList
后绝对需要一个数组,那么您可以使用其方法toArray从中获取数据。
修改强>
正如@camickr JComboBox
所建议的那样constructor,其中Vector为参数。就像ArrayList一样,Verctor也可以自动增长。因此,您可以使用它而不是采用数组的那个。更好的是,使用方法addItem将元素直接添加到组合框中。