Array data [] []在循环中存储正确的值。 然后我将数组添加到ArrayList中,但是当我更改数据数组的值之后,就像更新ArrayList中的所有对象一样。
如何分别存储每个Object [] []的值?
for (int i = 0; i < Materia.length; i++) {
for (int j = 0; j < Materia[i].Aluno.length; j++) {
data[j][0] = Materia[i].Aluno[j].Nome;
System.out.println(data[j][1] = Materia[i].Aluno[j].Nome);//checking outpit, its displaying the correct data I want
data[j][1] = Materia[i].Aluno[j].nota;
data[j][2] = Materia[i].Aluno[j].frequencia;
}
tabs.add(data); //arraylist to storer object data
tabela[i] = new JTable((Object[][]) tabs.get(i), Names);//populate default table model
conteudo2[i] = new JPanel();
conteudo2[i].add(new JLabel(Materia[i].Nome));
conteudo2[i].add(new JScrollPane(tabela[i]));
}
答案 0 :(得分:4)
将数据数组(数组)添加到选项卡列表。
由于在将新对象添加到arrayList之前没有创建新对象,因此它是同一个对象,因此当您在选项卡列表中更新对象时,也会更新data-Array中的内容。 p>
在将数据添加到列表之前,您需要创建一个新的数据阵列。
您可以通过使用方法System.arrayCopy创建一个新的2d-Array来实现此目的,然后再将此新对象添加到标签中:List:
$.each(objects.assignments, function(index, value) {
$('#group-' + index).change(function() {
updateInfo(index);
chart.draw(data[index], options);
if ( index == 0 ){
$("#as-dd.dropdown").text('Summary');
console.log("A");
}
else{
$("#as-dd.dropdown").text('Group ' + index);
console.log("B");
}
});
});