2017-07-09 54 views
0

我想将第3列与第4列相乘,并将其显示在第一行,但是当我在下一行中添加数据时,再次计算并将其显示在第二行上,第一行上的数据会发生变化。这是我的代码,有什么不对吗?我想计算jtable中的数据,但我有一个错误[Java]

public int getCost() { 
    int row = showTrans.getRowCount(); 
    int col = showTrans.getColumnCount(); 
    int cost; 

    for (int i = 0; i < row; i++) { 
     cost = Integer.parseInt(showTrans.getValueAt(i, 3).toString()) * 
       Integer.parseInt(showTrans.getValueAt(i, 4).toString()); 

     String totalCost = String.valueOf(cost); 
     model.setValueAt(totalCost, i, 4);   
    } 

    return 0; 
} 
+0

'model.setValueAt(totalCost,i,4);'您将值设置为第4列,它覆盖旧值 –

+0

但是我想将其显示回该行和列 –

+2

循环的重点是什么?你似乎有'行'需要更新,为什么更新其他行?也许你应该提供您的问题的可运行的例子,这将有助于你的问题 – MadProgrammer

回答

1

问题是,您正在重复使用第4列的成本和总计。

它的工作原理,因为成本是正确的第一次(总= 9460000),但成本是错误的,因为第4列现在是总的第二次。其结果是,它乘以总成本的数量(总= 946万* 2 = 18920000)

您需要使用新列总数,一切都应该罚款。

+0

的工作,,谢谢你这么多 –

+0

请[接受答案](http://meta.stackexchange.com/a/5235/155831)如果它有助于解决问题。与约翰相同的想法,但提供详细信息的链接。 ;) –

相关问题