MyTableModel扩展了DefaultTableModel,一切看起来都正常。
我有一个可编辑的列,正在调用setValueAt(),并且数据库已更新。
然而桌子本身没有刷新?
我覆盖,getColumName()
,getRowCount()
,isCellEditable()
,getColumClass()
和setValueAt()
- 它们被调用,并触发数据库更新。该模型由列表支持,该列表在setValueAt()中更新。
模型仅由myTable.setModel(myTableModel);
答案 0 :(得分:3)
您是否在代码中致电super.setValueAt()
?
看起来您的更改会跳过触发的事件。
答案 1 :(得分:1)
在setValueAt()
方法结束时致电fireTableCellUpdated()
。它必须帮助你。
答案 2 :(得分:0)
也许您需要刷新TableModel的缓存。 为了做到这一点,你可以覆盖fireTableDataChanged()并在覆盖结束时调用super方法。