Swing 在tableMode中编辑重复行,同时编辑原始行

Swing 在tableMode中编辑重复行,同时编辑原始行,swing,reference,vector,jtable,tablemodel,Swing,Reference,Vector,Jtable,Tablemodel,我已经创建了一个addrow函数,它将所选行或最后一行添加到tableModel的末尾。当我去编辑新行时,原始行也会被编辑。我想我创建了一个新的独立行,还是创建了对原始行的引用 int currentRow = jTable1.getSelectedRow(); Vector data = tableModel.getDataVector(); System.out.println("Vector size: " + data.size()); if(d

我已经创建了一个addrow函数,它将所选行或最后一行添加到tableModel的末尾。当我去编辑新行时,原始行也会被编辑。我想我创建了一个新的独立行,还是创建了对原始行的引用

int currentRow = jTable1.getSelectedRow();      

Vector data = tableModel.getDataVector(); 

    System.out.println("Vector size: " + data.size());        
if(data.size()>0){   
    if(currentRow > -1){
        Vector temp = (Vector) data.elementAt(currentRow);
        tableModel.addRow(temp);            
   }else{            
        Vector temp = new Vector(data);
        Vector helper = (Vector) temp.elementAt(temp.size()-1);

        tableModel.addRow(helper);
   }
 }else{
     outputMsg("Failed to add row.");
 }

您没有创建对原始行的引用,但这两行使用相同的
Vector
实例来表示其数据,其中包含向量中包含的相同数据对象。因此,原始行和新行都有完全相同的数据支持,因此在一行中进行修改将反映在另一行中


一种可能的解决方案是复制该表行表示的数据,并基于该数据的副本创建新行。如何创建该副本将取决于数据,尽管非常简单的实现可能是使用克隆方法(而不是克隆
向量
,而是克隆
向量
中包含的数据)

谢谢!复制数据并基于该数据插入。