java中的Sum Table列值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中的Sum Table列值相关的知识,希望对你有一定的参考价值。

各位,我的问题是关于jtable列值,我遇到了问题。我想将jtable列值相加并将其放入文本字​​段中。我正在将值插入jtable中,如果一行为空,则不会计算总数。我无法理解这是什么问题。我创建了一个方法并在按钮事件上调用它。

public void getSum(){

    int total=0;
    for(int i=0; i<JV_tbl.getRowCount(); i++){
        int amount = Integer.parseInt((String) JV_tbl.getValueAt(i, 6));

        total+=amount;
    }
    JV_totalDebit_box.setText(String.valueOf(total));

}

和按钮事件代码。

private void btn_entrySaveActionPerformed(java.awt.event.ActionEvent             evt) {                                              
     model = (DefaultTableModel)JV_tbl.getModel();
     model.addRow(new Object[]{
         jv_no_box.getText(),
         JV_entry_box.getText(),
         ((JTextField)date_txt.getDateEditor().getUiComponent()).getText(),
         JV_Acc_code.getText(),
         JV_acc_title.getText(),
         JV_desc_box.getText(),
         JV_debit_box.getText(),
         JV_credit_box.getText(),
         prep_box.getText(),
         checked_box.getText(),
         approved_box.getText()

     });

     getSum();

}               
答案

更改你的getSum()函数如下。它将删除所有空白行,然后继续总计。

public void getSum(){
    int rowcount1 = JV_tbl.getRowCount();
    DefaultTableModel tbm1 = (DefaultTableModel) JV_tbl.getModel();
    for(int i = rowcount1-1; i >=0; i--){
        if(JV_tbl.getValueAt(i, 6) == null){
            tbm1.removeRow(i);
        }       
    }

    int total=0;
    for(int i=0; i<JV_tbl.getRowCount(); i++){
        int amount = Integer.parseInt(JV_tbl.getValueAt(i, 6).toString());

        total+=amount;
    }
    JV_totalDebit_box.setText(String.valueOf(total));

}

以上是关于java中的Sum Table列值的主要内容,如果未能解决你的问题,请参考以下文章

在删除触发postgreSQL之前检查列值

如何使 Mat-Table 中的列值成为超链接 [重复]

根据第三个表中的列值删除表中的行

显示数据库中的列值

MySQL:通过其他表中的值更新列值

Laravel减少列值而不是负值