1

我想知道为什么我在按下getvalueAt()时会选择旧数据。 我尝试了所有更新和表格更改模块,但无法正常工作。我正在制作一个类似 Excel 表格的结构,其中一行在更改为另一行时更新。Enter
JTable

public void setValueAt(Object aValue, int row, int column) {
        if(column == 2 || column == 3 || column == 4 || column == 5)
    {
        System.out.println("2 is: "+getValueAt(row, 2));
        System.out.println("3 is: "+getValueAt(row, 3));
        System.out.println("4 is: "+getValueAt(row, 4));
        long closingbalance = Long.parseLong(getValueAt(row,2).toString())
            + Long.parseLong(getValueAt(row,3).toString())
            - Long.parseLong(getValueAt(row,4).toString());
        System.out.println("closing: "+closingbalance);
        super.setValueAt(closingbalance,row, 6);
    }               
    super.setValueAt(aValue, row, column);
}
4

2 回答 2

1

当您访问其他值时,验证您CellEditor是否已得出结论并且您TableModel处于一致状态。此示例覆盖getValueAt()以派生依赖单元格的值。为避免进行如此多的解析,您TableModel可能应该只包含Long.

假设您确实需要覆盖setValueAt(),则不清楚TableModel您在使用什么。如果您正在扩展DefaultTableModel,则super.setValueAt()实施是合适的;如果你正在扩展AbstractTableModel,超级实现是空的,你需要触发适当的事件。

于 2012-03-30T01:37:26.720 回答
1

我无法在另一个论坛上回答你的问题,因为一个新的论坛版本让我抓狂

于 2012-03-30T07:28:38.660 回答