在2个独立的JTable中显示不同的数据

时间:2015-07-14 19:56:36

标签: java arrays swing

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]));

    }

1 个答案:

答案 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");
        }
    });
});