刷新JTable

时间:2015-06-20 17:45:45

标签: java swing jtable tablemodel

我正在加载我的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对象绑定,而不是使用Object数组数组?

另外,我查看了删除行后重新加载Jtable数据,我理解为什么fireTableDataChanged方法不起作用。因为我没有更新模型。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

首先,尝试使用javax.swing.table.AbstractTableModel,不再使用DefaultTable模型。