0
動的な項目をObject [] []に追加しようとしていますが、配列インデックスが範囲外の例外をスローします。私はあなたが私にこれを行うためのアイデアを提案してもらえ、JavaのDataModelに動的データを追加できませんでした
private static final int CHECK_COL = 1;
private final Object[][] DATA = {};
private final String[] COLUMNS = { "Customer", "Selected Customer" };
private DataModel dataModel;
private JTable table;
private DefaultListSelectionModel selectionModel;
ArrayList<String> items = new ArrayList<String>();
JSONParser parser = new JSONParser();
try {
Object obj = null;
try {
obj = parser.parse(new FileReader(new File("json/customer_list.json")));
} catch (org.json.simple.parser.ParseException e1) {
e1.printStackTrace();
}
JSONObject jsonObject = (JSONObject) obj;
JSONArray listOfBranches = (JSONArray) jsonObject.get("customers");
for (int i = 0; i < listOfBranches.size(); i++) {
JSONObject item = (JSONObject)listOfBranches.get(i);
Set keys = item.keySet();
Iterator a = keys.iterator();
while(a.hasNext()) {
String key = (String)a.next();
System.out.print("key : "+key);
items.add(key);
}
System.out.println("Customer :" + listOfBranches.get(i)+"\n item "+item);
}
System.out.println("items array size :" + items.size());
String[] customerArr = new String[items.size()];
customerArr = items.toArray(customerArr);
System.out.println("customerArr array size :" + customerArr.length);
for (int i = 0; i < customerArr.length; i++) {
System.out.println("customerArr array size :" + customerArr.length);
DATA[i] = new Object[]{customerArr[i], Boolean.FALSE};
dataModel = new DataModel(DATA, COLUMNS);
table = new JTable(dataModel);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
は行の下、この中の結合した例外のうち、配列のインデックスを取得、これを行うには
DATA[i] = new Object[]{customerArr[i], Boolean.FALSE};
を以下のコードを使用していますか?前もって感謝します。
DATA要素の長さをデバッグして参照してください。 DATAの長さはcustomerArrの長さと異なる場合があります。 – user218046
@ user218046アイテムとcustomerArrの長さが同じです。しかし、私はデータ要素の長さについてはわからないし、私はまだその長さを初期化していないと思う。どうやったらそれを教えてください。 – Rotomac17