2015-06-20 76 views
0

我加載我的JTable數據這樣的:刷新JTable中

ColisDAO colisDAO = new ColisDAO(DatabaseConnection.getInstance()); 
Object[][] colisData = new Object[colisDAO.count()][]; 

public ColisPanel() { 
     Set<Colis> listColis = colisDAO.getAllColis(); 
     int i = 0; 
     Iterator<Colis> iterator = listColis.iterator(); 
     while(iterator.hasNext()) { 
      Colis currentColis = iterator.next();   
      colisData[i] = new Object[]{ 
       currentColis.idColis(), currentColis.idDescriptionColis(), 
       currentColis.affectataire(), currentColis.module(), currentColis.optionnel(), currentColis.secteur(), 
       currentColis.designationColis(), currentColis.designationContenu(), currentColis.poid(), currentColis.valeur(), 
       currentColis.iata(), currentColis.projection(), currentColis.observation()}; 

      i++; 
     } 

     initComponents(); 
     colisTable.setRowSelectionAllowed(true); 
    } 

     colisTable.setModel(new javax.swing.table.DefaultTableModel(
      colisData, 
      new String [] { 
       "idColis", "idDescriptionColis", "affectataire", "module", "optionnel", 
       "secteur", "designationColis", "designationContenu", 
       "poid", "valeur", "iata", "projection", "observation" 
      } 
     ) { 
      boolean[] canEdit = new boolean [] { 
       false, false, false, false, false, false, 
       false, false, false, false, false, false, false 
      }; 

      public boolean isCellEditable(int rowIndex, int columnIndex) { 
       return canEdit [columnIndex]; 
      } 
     }); 

是可以JTable中與Colis對象綁定,而不是直接使用對象的數組的數組?

此外,我查看了一下刪除行後重新加載Jtable數據,並且我明白爲什麼fireTableDataChanged方法不起作用。因爲我只是不更新​​模型。

我該怎麼辦?

+0

爲了更快地獲得更好的幫助,請發佈[MCVE](http://stackoverflow.com/help/mcve)(最小完整可驗證示例)或[SSCCE](http://www.sscce.org/)(Short ,獨立,正確的例子)。 – Madhan

+0

你可以詳細說明你的問題陳述更多 – Madhan

+0

你可能會從這個[例子](http://stackoverflow.com/a/19472190/230513)得到一些想法;請注意'addRow()'會爲您啓動正確的事件。 – trashgod

回答

0

首先,嘗試使用javax.swing.table.AbstractTableModel,不要再使用DefaultTable模型。