1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
   | package jtablex;
 
import javax.swing.table.*;
 
public class TableModelX extends AbstractTableModel {
 
    protected Object[][] m_odatas;
    protected boolean[][] m_bCellEditable;
    protected String[] m_stitres;
    protected boolean IS_EDITABLE = false;
    protected int m_iNbCol;
    protected int m_iNbRow;
 
    public TableModelX(Object[][] datas, String[] titres) {
        this.m_odatas = datas;
        this.m_stitres = titres;
        initCellEditable();
    }
 
    protected void initCellEditable() {
        m_iNbCol = m_stitres.length;
        m_iNbRow = m_odatas.length;
        m_bCellEditable = new boolean[m_iNbRow][m_iNbCol];
        for (int r = 0; r < m_iNbRow; r++) {
            for (int c = 0; c < m_iNbCol; c++) {
                m_bCellEditable[r][c] = true;
            }
        }
 
    }
 
    public Object[][] getDatas() {
        return m_odatas;
    }
 
    public String[] getEntetes() {
        return m_stitres;
    }
 
 
    public int getRowCount() {
        return m_odatas.length;
    }
 
    public int getColumnCount() {
        return m_stitres.length;
    }
 
    public Object getValueAt(int row, int col) {
        Object o = m_odatas[row][col];
        if (o != null)
            return o;
        else
            return "";
    }
 
    public void setValueAt(Object value, int row, int col) {
        System.out.println("class:"+value.getClass().getName()+"   value:"+value);
        m_odatas[row][col] = value;
    }
 
    public Class getColumnClass(int col) {
        return getValueAt(0, col).getClass();
    }
 
 
    public boolean isCellEditable(int row, int col) {
        return m_bCellEditable[row][col];
    }
 
 
    public void setCellEditable(boolean editable, int row, int col) {
        m_bCellEditable[row][col] = editable;
    }
 
    public void setCellEditable(int row, int col, boolean editable) {
        m_bCellEditable[row][col] = editable;
    }
 
   public void setRowEditable(int row, boolean editable) {
        for (int c = 0; c < m_iNbCol; c++)
            m_bCellEditable[row][c] = editable;
    }
 
    public void setColumnEditable(int col, boolean editable) {
        for (int r = 0; r < m_iNbRow; r++)
            m_bCellEditable[r][col] = editable;
    }
    public void setTableEditable(boolean editable) {
       for (int r = 0; r < m_iNbRow; r++)
           for (int c = 0; c < m_iNbCol; c++)
               m_bCellEditable[r][c] = editable;
   }
 
 
   public String getColumnName(int col) {
        return m_stitres[col];
    }
} | 
Partager