我想知道为什么我的getvalueAt()
在按下 Enter 时选择旧数据。
我尝试了所有更新和表更改模块,但我无法正常工作。我在JTable
中制作了一个类似Excel表格的结构,其中一行更新为另一行。
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);
}
答案 0 :(得分:1)
在您访问其他值时,验证您的CellEditor
是否已结束以及您的TableModel
是否处于一致状态。此example覆盖getValueAt()
以获取相关单元格的值。为了避免这么多解析,您的TableModel
可能只包含Long
的实例。
假设您确实需要覆盖setValueAt()
,则不清楚您使用的TableModel
是什么。如果您要延长DefaultTableModel
,则super.setValueAt()
实施是合适的;如果你正在扩展AbstractTableModel
,那么超级实现是空的,你的将需要触发相应的事件。
答案 1 :(得分:1)