使用Netbeans刷新数据库的jTable

时间:2011-06-21 07:26:06

标签: java swing jtable

我正在使用Java和MySQL作为数据库开发数据库应用程序。 我使用Netbeans作为开发工具。

我需要在JTable中显示存储的数据库。

现在我通过查询将数据添加到数据库。 JTable没有立即显示更新的详细信息。我需要重新启动应用程序,即再次运行它。

现在我需要知道当DB发生变化时如何刷新JTable。

请提供步骤或示例编码,因为我无法在互联网上找到某个编码示例。

4 个答案:

答案 0 :(得分:2)

也许它足以通过表模型触发更改:

yourTable.getModel().fireTableDataChanged()

答案 1 :(得分:2)

每当数据库中的数据发生变化时,您需要重新创建TableModel,然后使用新模型更新表:

TableModel model = ...

table.setModel( model );

答案 2 :(得分:1)

我遇到了同样的问题,然后我创建了名为" UPDATEtable()"的函数。 我在其中放置连接代码并在需要从Mysql输入Jtable中的数据时调用该函数。对于“刷新”按钮,我首先从表中清除数据,然后调用相同的函数。

以下是代码:-(表变量名称 - TB1)

private void **UPDATEtable()**{
        DefaultTableModel model=(DefaultTableModel) TB1.getModel();
try{



  stmt= con.createStatement();
    String query="SELECT * FROM goods ORDER BY order_num DESC;";
ResultSet rs = stmt.executeQuery(query);
    while(rs.next()){
        String PID = rs.getString("PID");
     String Pname = rs.getString("Pname");
       String NUM = rs.getString("order_num");
      model.addRow(new Object[] {PID ,Pname,NUM);

    }


}


catch(Exception e)
{
    System.out.print(e);

}

FOR REFRESH BUTTON: -

    DefaultTableModel model=(DefaultTableModel) TB1.getModel();
        while(model.getRowCount()>0){
    model.setRowCount(0);
}

        UPDATEtable();

答案 3 :(得分:0)

如果您将instanciated tableNameList设置为observable,则还可以使用以下代码:

tableNameList.clear();
tableNameList.addAll(tableQuery.getResultList());