[英]sum of JTable column values and sum display in last row
我有28列,“金額”是其中之一,並且有一個總計按鈕。 因此,當我按下合計按鈕時,要在最后一行顯示“金額”列的總和。 我使用DefaultTableModel並希望僅在嘗試此代碼的情況下顯示金額列以下的金額總和-
totalbtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae)
{
Object source = ae.getSource();
if (source == totalbtn)
{
double total = 0.0;
model.addRow(new Object[]{"","" ,new Integer(1), "", new Double(0.0),new Double(0.0),new Double(0.0),"",new Double(0.0),new Double(0.0),new Double(0.0),new Double(0.0),new Double(0.0),new Double(0.0),new Double(0.0),new Double(0.0),new Double(0.0),new Double(0.0),new Double(0.0),new Double(0.0),new Double(0.0),new Double(0.0),new Double(0.0),new Double(0.0),new Double(0.0),new Double(0.0),new Double(0.0)});
for(int i = 0; i < model.getRowCount()-1 ; i++)
{
double Amount = (double) model.getValueAt(i, 5);
total = Amount+total;
}
model.setValueAt(total,model.getRowCount()-1,5);
// model.setValueAt(total,i,5);
System.out.println("total is"+total);
}
}
});
for(int i = 0; i < model.getRowCount(); i++){
double total = 0; //#########3
double Amount = (double) model.getValueAt(i, 5);
total = Amount+total;
model.setValueAt(total,i,5);
System.out.println("total is"+total);
}
您會看到您正在聲明每一行的總價值。 因此,您將擦除它並在新行中得到最后一個值。
double total = 0;
for(int i = 0; i < model.getRowCount(); i++){
.. .
}
另外,由於添加了一行,因此不應讀取最后一個值,因為這是total
,因此最終結果為total *2
。 因此,更改條件如下:
for(int i = 0; i < model.getRowCount() -1 ; i++){ //To skip the `total` row
然后,由於我現在才注意到這一點,因此您需要在計算total
之后設置值。 循環后。
for(){ ... }
model.setValueAt(total,model.getRowCount() - 1 ,5);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.