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