java - JTable 列值的总和以及总和显示在最后一行

标签 java

我有 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);
}        

您可以看到您正在声明每一行的总值(value)。因此,您将删除它并最终得到新行中的最后一个值。

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

然后,由于我现在才注意到这一点,因此您需要在计算总计后设置该值。循环之后。

for(){ ... }
model.setValueAt(total,model.getRowCount() - 1 ,5);

关于java - JTable 列值的总和以及总和显示在最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43654515/

相关文章:

java - 如何将已使用 borderlayout 布局的面板中的对象居中

java - JPA 与 JTA 事务 - 获取 JDBC 连接

java - 如何使用 JPopupmenu 的 JMenuItem 禁用特定单元格?

java - 如何从多部分表单数据请求中删除 http 工件?

java - 异步任务流程

java - 在 Java 中是否有使用方法引用 JAVA 覆盖方法的缩写形式?

java - 从 ActionBar 调用新 Activity

java - TabLayout改变tabText颜色

java - JSONException : A JSONObject text must begin with '{' at character 1 error in HTTPS POST response

java - 使用 twitter4j 获取给定位置周围的所有推文