使JTable Display仅添加了Row

时间:2012-10-22 09:12:38

标签: java mysql swing jdbc

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

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

这显然会在JTable上添加行。但是,我想要发生的是JTable只显示添加的行。

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

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

1 个答案:

答案 0 :(得分:1)

  1. 不要重新发明方向盘,搜索ResultsetTableModelTableFromDatabase(所有事件都在EDT上穹顶,Swing GUI等待/冻结,直至全部活动结束,基于AbstractTableModel

  2. 重新发明轮子,

    a)对Runnable#Thread()

    使用SwingWorkerpublish()progress()JDBC

    b)创建一个合适的AbstractTableModel,可以覆盖正确的通知,

    c)使用模型"fireTableRowsInserted(rowCount,rowCount+1);"

    中的通知程序

    d)Swing GUIJTableXxxTableModel的所有更新必须在EDT

  3. 上完成
  4. 如果要求严格覆盖AbstractTableModel中的方法,请查找正确的AbstractTableModel,否则请使用DefaultTableModel并从Runnable#Thread()拨打电话或SwingWorkermyModel.addRow(),其他

  5. SSCCE发布Array JDBC Connections

  6. 的{{1}}版本的数据后,更快获得更好的帮助