在Swing中取消表更新事件

时间:2011-12-30 12:48:47

标签: java swing jtable

我有一个案例,我希望在表上捕获更新事件,检查当前值是什么以及受影响的列+行的新值。如果它不是预期的,我想取消更新并将其恢复到原来的状态。这对使用TableModelListener非常困难,而且我一直在运行堆栈溢出错误,因为我无法手动维护状态并将其还原,而不会再次以递归方式调用自身。

1 个答案:

答案 0 :(得分:3)

创建自己的TableModel(或扩展DefaultTableModel或AbstractTableModel),并覆盖setValueAt - 在那里,你可以更新底层模型(使用super.setValueAt())或扔掉它 - 你不需要保存旧值,因为除非您调用超类,否则更改将永远不会通过。