我想连续获取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
:
- 添加数据行
- 删除数据行
- 更改现有数据的值
在上述每种情况下,您都可以迭代 TableModel
来计算新值。
查看JTable -> TableModeListener有关使用 TableModelListener
的简单示例。
上述方法假设您的模型中没有太多数据,因为每次进行更改时它都会重新计算值。
如果您有大量数据,这不是很有效,因此您可能希望在 TableModel 中保留值的运行总计。因此,您需要自定义 TableModel 以保留总计。然后在 setValueAt(...)、insertRow(...)、removeRow(...) 等方法中,您需要添加逻辑以在模型更新时更新总数。
关于java - 连续获取 jtable 值的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52300607/