2011-06-21 79 views
0

我正在开发一个数据库应用程序,使用Java和MySQL作为数据库。 正在使用Netbeans作为开发工具。使用Netbeans刷新数据库的jTable

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

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

现在我需要知道如何在数据库发生更改时刷新JTable。

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

回答

2

也许这足以烧透表模型的变化:

yourTable.getModel().fireTableDataChanged() 
+0

让我尝试它,并告诉ü –

+2

它不工作的fireTableDataChaged ()方法未被检测到 –

+0

无用的帖子,请编辑您的帖子并添加一些关于JTable,TableModel ...,并且没有人知道OP的开发工具是什么 – mKorbel

2

每当数据库中的数据变化,你需要重新创建TableModel的,然后用新模式更新表:

TableModel的模型= ...

table.setModel(model); 
0

你也可以使用下面的代码,如果你已经实例化tableNameList作为观察到:

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

是的,它是正确的,但只有在stanciated tableNameList可观察。 – adev

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刷新按钮: -

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

     UPDATEtable();