2013-03-26 79 views
0

我的Swing應用程序有幾個文本文件和Jtable。當我更新textFileds中的值時,在更新數據後立即在Jtable上顯示這些值。 我試過使用tbmodel.fireTableDataChanged();但那沒有用。JTable模型數據不顯示更新數據

try { 
       String driveID = txtDriverID.getText(); 
       String trnsCompName = (String)cmbTransCompany.getSelectedItem(); 
       String trDriverName = txtName.getText(); 
       String trAddress = txtAddress.getText(); 
       String trDob = txtDOB.getText(); 
       String license = txtLicence.getText(); 
       String telephone = txtTelephone.getText(); 
       PvtTransportDriver pvtDriver = new PvtTransportDriver(driveID, trnsCompName, trDriverName, trAddress, trDob, license, telephone); 
       int res = PvtTransDriverController.updatePvtTransportDriver(pvtDriver); 
       tbmodel = (DefaultTableModel) tblAllPvtDrivers.getModel(); 
       tbmodel.fireTableDataChanged(); 
       if (res > 0) { 
        JOptionPane.showMessageDialog(null, "Updated"); 
       } 
     } catch ( ClassNotFoundException | SQLException ex) { 
       Logger.getLogger(PvtTransDriver.class.getName()).log(Level.SEVERE, null, ex); 
     } 

回答

1

是不是需要撥打fireTableDataChanged。這由TableModel調用。

對於更新表中的行,你可以使用setValueAt

對於添加行,你可以使用addRow

例如:

tbmodel.setValueAt(driveID, 0, 0); 
+0

日Thnx您的回覆。但這裏不是這種情況。我有單獨的方法來使用setValueAt方法插入數據到tabel。我想要做的是當我按下界面上的更新按鈕時,文本字段數據應該更新相關數據庫字段。表數據來自數據庫,而不是來自文本字段。所以我希望在更新數據庫後使用文本字段更新表格數據。 – amal 2013-03-26 18:18:16

+0

然後你需要做一個'SQL'' INSERT'或'UPDATE'調用,最好使用PreparedStatement。看到這個[link](http://tutorials.jenkov.com/jdbc/preparedstatement.html) – Reimeus 2013-03-26 19:28:00