java - 让JTable只显示添加的行

标签 java mysql swing jdbc

现在我有一个使用 AbstractTableModel 的 JTable,该模型使用 JDBC 访问 SQL 数据库。我这样做

stmt.executeUpdate(someStr);
fireTableRowsInserted(rowCount,rowCount+1);

这显然会在 JTable 上添加行。但是,我希望 JTable 仅显示添加的行。

我想也许创建一个仅包含添加的行的结果集,但我无法得到它,因为我没有增量 id 字段。

还有什么我可以尝试的吗?

最佳答案

  1. 不要重新发明轮子,搜索 ResultsetTableModelTableFromDatabase(所有事件均在 EDT 上进行) Swing GUI 等待/卡住直到所有事件结束,基于 AbstractTableModel)

  2. 重新发明轮子,

    a) 使用 Runnable#Thread()SwingWorker(publish()progress())对于JDBC

    b) 创建一个适当的AbstractTableModel,可以覆盖适当的通知程序,

    c) 使用模型中的通知程序,"fireTableRowsInserted(rowCount,rowCount+1);"

    d) 对 Swing GUIJTableXxxTableModel 的所有更新都必须在 EDT 上完成

  3. 如果需要严格重写AbstractTableModel中的方法,则寻找正确的AbstractTableModel,否则使用DefaultTableModel并仅从 Runnable#Thread()SwingWorker 调用 myModel.addRow(),仅此而已

  4. 为了获得更好的帮助,请尽快发布 SSCCE将数据硬编码到 Array 中,而不是 JDBC Connections

关于java - 让JTable只显示添加的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13008155/

相关文章:

php - WHERE 子句中 DATE 或 DATE_FORMAT 的开销是多少?

JavaFX 和 Swing 性能问题

Java JPanel 子类忽略添加组件的界限

java - libgdx 中的流 API

java - PDFBox 中的 load() 和 parse() 方法可能存在错误?

java - 两个 joda 日期之间的天数,包括假期

java - Eclipse Juno 4.2 的 Swing 插件?

java - 使用隐藏字段的参数是否有充分的理由?

php - Laravel Auth 重复电子邮件

mysql - 无法在 mysql-apt-config [Ubuntu 14.04] 中选择 'OK'