ResultSet в JCombobox

Я хочу заполнить Jcombobox результатами sql, но почему я получаю здесь 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++; } 

Нет необходимости в временном хранении. Вы можете загрузить элементы непосредственно в поле со списком, используя ArrayList:

 comboBox.addItem(...); 

Или используйте вектор вместо ArrayList, потому что DefaultListModel использует вектор для хранения данных в любом случае.

Очевидно, что в результирующем наборе больше элементов, чем в массиве. Вы должны использовать ArrayList, который растет динамически.

Если вам понадобится массив после ArrayList массива ArrayList вы можете получить его с помощью метода toArray .

РЕДАКТИРОВАТЬ

Как предложил @camickr JComboBox имеет конструктор, который принимает параметр Vector как. Точно так же, как ArrayList, Verctor также может автоматически расти. Таким образом, вы можете использовать его вместо того, который принимает массив. Еще лучше, используйте метод addItem для добавления элементов непосредственно в поле со списком.