2015-06-20 172 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模型。