java - 连续获取 jtable 值的总和

标签 java swing

我想连续获取jtable中所有值的总和。就像我制作了一个 jtable,用户将连续放置数据,每当新行插入 jtable 时,就应该执行一些代码来获取 jtable 的所有值的总和,然后将其设置在文本字段中。我已经编写了代码,但我不知道在哪种情况下应该使用该代码,以便在表中插入新行时运行代码并获取所有值的新总和并将其存储在文本字段中。那么现在我应该在 jtable 的哪个方法中使用此代码,以便在插入新行时执行代码。 代码在这里...

    int rows=productionTable.getRowCount();
    int totalBundles=0;
    int totalBoxes=0;

    //totalBundles
    for(int i=0;i<rows;i++)
    {
        totalBundles=totalBundles+Integer.parseInt(productionTable.getValueAt(i, 1)+"");

    }
    this.totalBundlesTextField.setText(totalBundles+"");
    //

    //totalBoxes
    for(int i=0;i<rows;i++)
    {
        totalBoxes=totalBoxes+Integer.parseInt(productionTable.getValueAt(i, 2)+"");

    }
    this.totalBoxesTextField.setText(totalBoxes+"");
    //

最佳答案

So now in which method of jtable I should use this code so when a new row is inserted so that code execute

TableModel 中的数据发生更改时,您可以执行此操作。因此,您可以将 TableModelListener 添加到表的 TableModel 中。然后,当您执行以下操作时,将生成 TableModelEvent:

  1. 添加数据行
  2. 删除数据行
  3. 更改现有数据的值

在上述每种情况下,您都可以迭代 TableModel 来计算新值。

查看JTable -> TableModeListener有关使用 TableModelListener 的简单示例。

上述方法假设您的模型中没有太多数据,因为每次进行更改时它都会重新计算值。

如果您有大量数据,这不是很有效,因此您可能希望在 TableModel 中保留值的运行总计。因此,您需要自定义 TableModel 以保留总计。然后在 setValueAt(...)、insertRow(...)、removeRow(...) 等方法中,您需要添加逻辑以在模型更新时更新总数。

关于java - 连续获取 jtable 值的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52300607/

相关文章:

java - java中如何从ip地址获取子网

java - 逐渐加速 Sprite

java - 在 gui Java 中对 if 语句的输出显示添加延迟

java - Angular 2 和 Spring 之间的数据流

java - 我需要使用在不同类的类内的方法中创建的多个字符串

java - 如何创建具有外观和感觉的 TableCellRenderer?

java - 在 JEditorPane 中保留空 HTML 行的格式

Java记住登录信息

Java 处理 getOutputStream 到 String

java - 一次从数据库中获取所有问题还是一次获取一个问题?