将 Jtable 中的值加在一起
Add the values in a Jtable together
如何在用户向 Table 中插入值时获取 Jtable 中特定列的总和?
您可以覆盖 TableModel
的 setValueAt(...)
方法。每当值发生变化时,您都将值存储在模型中,然后遍历模型中的所有行以重新计算总数。在循环时使用 getValueAt(...)
方法获取值。
或者,如果总值未显示在 table 中,但在某些其他 Swing 组件中,您可能希望使用 TableModelListener
。每当数据发生变化时都会生成一个事件,因此您只需循环遍历 TableModel using the
getValueAt(...)` 方法中的所有行。
TableModelListener 的实现可能类似于:
TableModelListener tml = new TableModelListener()
{
public void tableChanged(TableModelEvent e)
{
if (e.getType() == TableModelEvent.UPDATE)
{
int column = e.getColumn();
if (column == ???)
{
TableModel model = (TableModel)e.getSource();
double total = 0;
for (int row = 0; row < model.getRowCount(); row++)
{
double value = ((Double)model.getValueAt(row, ???2)).doubleValue();
total += value;
}
System.out.println( total );
}
}
}
});
JTable table = new JTable(...);
table.getModel().addTableModelListener(tml);
如何在用户向 Table 中插入值时获取 Jtable 中特定列的总和?
您可以覆盖 TableModel
的 setValueAt(...)
方法。每当值发生变化时,您都将值存储在模型中,然后遍历模型中的所有行以重新计算总数。在循环时使用 getValueAt(...)
方法获取值。
或者,如果总值未显示在 table 中,但在某些其他 Swing 组件中,您可能希望使用 TableModelListener
。每当数据发生变化时都会生成一个事件,因此您只需循环遍历 TableModel using the
getValueAt(...)` 方法中的所有行。
TableModelListener 的实现可能类似于:
TableModelListener tml = new TableModelListener()
{
public void tableChanged(TableModelEvent e)
{
if (e.getType() == TableModelEvent.UPDATE)
{
int column = e.getColumn();
if (column == ???)
{
TableModel model = (TableModel)e.getSource();
double total = 0;
for (int row = 0; row < model.getRowCount(); row++)
{
double value = ((Double)model.getValueAt(row, ???2)).doubleValue();
total += value;
}
System.out.println( total );
}
}
}
});
JTable table = new JTable(...);
table.getModel().addTableModelListener(tml);