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