私はMSアクセスデータベースをクエリし、結果セットとしてクエリを返し、最終的にその結果セットを文字列配列に変換して渡すことができるプログラムを作成していますそれをSwing JComboBoxのコンストラクタに追加します。そのため、ComboBoxはクエリによって返されたアイテムをリストします。Javaの結果セットを文字列配列に変換する
結果セットの行をArrayListに格納してから、そのArrayListをオブジェクト配列に変換して、コンボボックスに正しい項目をオブジェクトとしてリストすることができました。そのArrayListをString配列にキャストすることはできません。これが可能なら誰でも知っていますか?ここにいくつかのコードがあります...
// Convert the Resultset into an array list
public ArrayList<ArrayList<Object>> Results2Array(ResultSet rs) throws SQLException {
ResultSetMetaData metaData = rs.getMetaData();
int columns = metaData.getColumnCount();
ArrayList<ArrayList<Object>> al = new ArrayList<ArrayList<Object>>();
while (rs.next()) {
ArrayList<Object> record = new ArrayList<Object>();
for (int i = 1; i <= columns; i++) {
Object value = rs.getObject(i);
record.add(value);
}
al.add(record);
}
return al;
}
// Convert ArrayList to Object Array, and pass into GUI
ArrayList<String> Locations = new ArrayList<String>();
ArrayList<String> Months = new ArrayList<String>();
ArrayList<String> Years = new ArrayList<String>();
try {
DB.loadDriver();
DB.makeConnection();
DB.buildStatement();
Locations = DB.getLocations();
Months = DB.getMonths();
Years = DB.getYears();
Object[] arrLocations = Locations.toArray();
Object[] arrMonths = Months.toArray();
Object[] arrYears = Years.toArray();
dbGUI ui = new dbGUI(arrLocations, arrMonths, arrYears);
ui.setVisible(true);
誰もが提案できますか?ありがとう!
UPDATE:
java.lang.ArrayStoreException
at java.lang.System.arraycopy(Native Method)
at java.util.Arrays.copyOf(Unknown Source)
at java.util.ArrayList.toArray(Unknown Source)
at kidsfirstdb.Main.main(Main.java:23)
ご協力いただきありがとうございます。私はあなたが提案したものを試しましたが、私はまだそれらの例外をString [] arrLocations = locations.toArray(new String [0])にしているようです。 – littleK
あなたが気にしないなら、スタックトレースを共有してください。 –
元の投稿にスタックトレースを追加しました。ありがとうございます。 – littleK