现在我有一个使用 JDBC 访问 SQL 数据库的 AbstractTableModel 的 JTable。我这样做
stmt.executeUpdate(someStr);
fireTableRowsInserted(rowCount,rowCount+1);
这显然在 JTable 上添加了行。但是,我希望 JTable 只显示添加的行。
我想也许创建一个只包含添加行的结果集,但我无法得到它,因为我没有增量 id 字段。
还有什么我可以尝试的吗?
不要重新发明轮子,搜索ResultsetTableModel
,TableFromDatabase
(所有事件都打开EDT
并Swing GUI
等待/冻结直到所有事件结束,基于AbstractTableModel
)
重新发明轮子,
a) 使用Runnable#Thread()
或SwingWorker
( publish()
, progress()
) 表示JDBC
b)创建一个适当的AbstractTableModel
,有覆盖适当的通知,
c) 在模型中使用通知器,"fireTableRowsInserted(rowCount,rowCount+1);"
Swing GUI
d) , JTable
,的所有更新XxxTableModel
必须在EDT
如果有要求严格覆盖其中的方法AbstractTableModel
,则寻找正确的AbstractTableModel
,否则使用DefaultTableModel
和调用 from Runnable#Thread()
or SwingWorker
only myModel.addRow()
,仅此而已
为了获得更好的帮助,请尽快发布将数据硬编码到instreadArray
中的 SSCCEJDBC Connections