0

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++;
      }
4

2 に答える 2

4

一時保管の必要はありません。ArrayList を使用せずに項目をコンボ ボックスに直接ロードできます。

comboBox.addItem(...);

または、ArrayList の代わりに Vector を使用します。これは、DefaultListModel が Vector を使用してデータを保持するためです。

于 2013-10-05T15:14:40.333 に答える
1

明らかに、結果セットには配列よりも多くの要素がありcountriesます。代わりに、動的に成長するArrayListを使用する必要があります。

にデータを入力した後に配列が絶対に必要な場合は、メソッドtoArrayArrayListを使用して取得できます。

編集

@camickrJComboBoxが示唆するように、Vectorをパラメーターとして受け取るコンストラクターがあります。ArrayList と同様に、Verctor も自動的に拡張できます。したがって、配列を取るものの代わりに使用できます。さらに良いのは、メソッドaddItemを使用して要素をコンボボックスに直接追加することです。

于 2013-10-05T14:55:40.590 に答える