现在我有一个使用AbstractTableModel的JTable,它使用JDBC来访问SQL数据库。我这样做
stmt.executeUpdate(someStr);
fireTableRowsInserted(rowCount,rowCount+1);
这显然会在JTable上添加行。但是,我想要发生的是JTable只显示添加的行。
我想过可能会创建一个只包含添加行的结果集,但我无法得到它,因为我没有增量id字段。
还有什么我可以尝试的吗?
答案 0 :(得分:1)
不要重新发明方向盘,搜索ResultsetTableModel
,TableFromDatabase
(所有事件都在EDT
上穹顶,Swing GUI
等待/冻结,直至全部活动结束,基于AbstractTableModel
)
重新发明轮子,
a)对Runnable#Thread()
SwingWorker
或publish()
(progress()
,JDBC
)
b)创建一个合适的AbstractTableModel
,可以覆盖正确的通知,
c)使用模型"fireTableRowsInserted(rowCount,rowCount+1);"
d)Swing GUI
,JTable
,XxxTableModel
的所有更新必须在EDT
如果要求严格覆盖AbstractTableModel
中的方法,请查找正确的AbstractTableModel
,否则请使用DefaultTableModel
并从Runnable#Thread()
拨打电话或SwingWorker
仅myModel.addRow()
,其他
在SSCCE发布Array
JDBC Connections