2011-06-21 77 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();