0

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

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

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

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

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

4

1 回答 1

1
  1. 不要重新发明轮子,搜索ResultsetTableModelTableFromDatabase(所有事件都打开EDTSwing GUI等待/冻结直到所有事件结束,基于AbstractTableModel

  2. 重新发明轮子,

    a) 使用Runnable#Thread()SwingWorker( publish(), progress()) 表示JDBC

    b)创建一个适当的AbstractTableModel,有覆盖适当的通知,

    c) 在模型中使用通知器,"fireTableRowsInserted(rowCount,rowCount+1);"

    Swing GUId) , JTable,的所有更新XxxTableModel必须在EDT

  3. 如果有要求严格覆盖其中的方法AbstractTableModel,则寻找正确的AbstractTableModel,否则使用DefaultTableModel和调用 from Runnable#Thread()or SwingWorkeronly myModel.addRow(),仅此而已

  4. 为了获得更好的帮助,请尽快发布将数据硬编码到instreadArray中的 SSCCEJDBC Connections

于 2012-10-22T10:20:44.697 回答