现在我有一个使用 AbstractTableModel 的 JTable,该模型使用 JDBC 访问 SQL 数据库。我这样做
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);"
d) 对
Swing GUI
、JTable
、XxxTableModel
的所有更新都必须在EDT
上完成如果需要严格重写
AbstractTableModel
中的方法,则寻找正确的AbstractTableModel
,否则使用DefaultTableModel
并仅从Runnable#Thread()
或SwingWorker
调用myModel.addRow()
,仅此而已为了获得更好的帮助,请尽快发布 SSCCE将数据硬编码到
Array
中,而不是JDBC Connections
关于java - 让JTable只显示添加的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13008155/