java中的Sum Table列值

问题描述 投票:0回答:1

各位,我的问题是关于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();

}               
java swing jtable textfield
1个回答
0
投票

更改你的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));

}
© www.soinside.com 2019 - 2024. All rights reserved.