我想在执行数据库操作(例如插入/更新/删除)而没有帧重新加载后刷新JTable
。有没有这样做的程序化解决方案?
答案 0 :(得分:3)
答案取决于您使用的TableModel
的类型......以及事件发生的级别。
例如,如果您有某种后台Thread
或“更新”按钮并希望从数据库重新加载内容,则可以根据数据库中的结果创建一个新的TableModel
,将其应用于当前JTable
,这将自动更新视图。
如果您在应用程序中执行数据库操作(添加,更新,删除行),您可以向TableModel
提供某种通知,并只更新其内容。
例如,DefaultTableModel
提供了addRow
,insertRow
,removeRow
方法。 TableModel
还提供setValueAt
,允许您更改给定单元格的值。
所有这些方法都会向模型自动关联的JTable
提供通知
答案 1 :(得分:-2)
您应该使用jtable.getViewport().removeAll()
,然后使用从数据库收集的所有数据再次重新填充。