如何在JTable中查找2d数组中每行的总和

时间:2014-01-07 10:58:32

标签: java arrays swing jtable

My Table模型扩展了AbstractTableModel。在其中,我试图使用每行的最后一列来保存每一行的总和。在TableModel类的getValueAt()方法中,我有以下代码

public Object getValueAt(int row, int col){
    int sum;
    if(col==data[row].length-1){

        for(int k=0; k<data.length;k++){
            sum=0;
            for(int l=0; l<data[k].length;l++){
                sum+=(Integer)getValueAt(k,l);
            }
                data[k][30]=sum;    
        }
    }
    return data[row][col];
}

每当我运行上面的代码时,都会显示控制台中的StackOverflow和其他类型的错误。我无法找到此代码中的错误。此外,如果此代码将数组中每行的总和相加,我将无能为力。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

请尝试以下操作:

public Object getValueAt(int row, int col){
    int sum;
    if(col==data[row].length-1){
        sum=0;
        for(int l=0; l<data[row-1].length;l++){
            sum+=(Integer)data[row-1][l];
                    }
            data[row-1][30]=sum;    
        }
    }
    return data[row][col];
}

因为你覆盖了getValueAt方法,并且在你的方法中你再次调用getValueAt()。由于递归,您将收到stackoverflow和其他错误。