簡體   English   中英

JTable列值的總和和最后一行的總和顯示

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM