📌  相关文章
📜  如何在 java 中的列中获取 DefaultTableModel 行总和(1)

📅  最后修改于: 2023-12-03 15:24:12.488000             🧑  作者: Mango

在 Java 中的 DefaultTableModel 列中获取行总和

DefaultTableModel 是 Swing 中用于表格数据的默认实现,它可以让开发人员很方便地添加、修改和删除表格中的数据。如果需要在表格中获取某一列的行总和,可以通过以下步骤实现:

  1. 获取表格模型中某一列的数据
DefaultTableModel model = (DefaultTableModel) table.getModel();
Vector columnData = model.getDataVector().stream().map(row -> row.get(columnIndex)).collect(Collectors.toCollection(Vector::new));

这里的 columnIndex 指的是需要获取行总和的列的索引,可以根据实际需求进行修改。

  1. 对列中的每个元素进行求和
int sum = columnData.stream().mapToInt(value -> ((Number) value).intValue()).sum();

这里使用了 Java 8 中的流式操作,先将 columnData 中的每个元素转换成 int 类型,然后使用 sum() 方法对它们进行求和。如果该列中可能存在空值,则需要在转换时进行判断和处理。

完整代码如下:

DefaultTableModel model = (DefaultTableModel) table.getModel();
Vector columnData = model.getDataVector().stream().map(row -> row.get(columnIndex)).collect(Collectors.toCollection(Vector::new));
int sum = columnData.stream().mapToInt(value -> ((Number) value).intValue()).sum();

注意事项:

  • 如果表格中行数据比较多,对每行进行求和可能会比较耗时,可以考虑使用索引访问列中的数据,或者缓存列中的总和。
  • 如果列中的数据类型不一致,可能会出现类型转换异常或求和结果错误等问题,需要对数据类型进行检查和转换。