JTableModel me deixando louco. nao consigo usar Contrutor de DefaultTableModel

Tenho um TableModel. Eu quero utilizar para criar os Dados da tabela, o contrutor da superClasse DefaultTableModel (String[], int), mas nao consigo pegar um array de String[][] de volta. tem como ?

pode ser Object[][] tambem…

Codigo abaixo !

package TableModel;


import javax.swing.table.DefaultTableModel;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;

public class MyTableModel extends DefaultTableModel implements TableModelListener {

    private String[] columnNames; 
    private String[][] data;
    
    public MyTableModel(String[] colNames, int row)
    {
    	columnNames = colNames;
    	super.setRowCount(row);
    	data = super.getDataVector();// so tem este jeito de pegar os dados de volta ? por que preciso deles como um String[][]. e nao queria usar um for.
    }
    

    public int getColumnCount() {
        return columnNames.length;
    }

    public int getRowCount() {
        return data.length;
    }

    public String getColumnName(int col) {
        return columnNames[col];
    }

    public Object getValueAt(int row, int col) {
        return data[row][col];
    }

    public Class getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }

    public boolean isCellEditable(int row, int col) {
        return true;    
    }

    public void setValueAt(Object value, int row, int col) {
        data[row][col] = value;
        fireTableCellUpdated(row, col);
    }
    
	public void tableChanged(TableModelEvent e) {
		// TODO Auto-generated method stub
		int row = e.getFirstRow();
        int column = e.getColumn();
        TableModel model = (TableModel)e.getSource();
        String columnName = model.getColumnName(column);
        Object data = model.getValueAt(row, column);
	}
}


você tme que extender a abstractTableModel
e pra pega por exemplo a String[][] data
é só criar um metodo que te retorne data

consegui fazer mas agora tem outro problema…

esse tableModel e para que eu consiga mudar a cor pra vermelho das celulas da minha tabela que tenham valor igual a “1”(String mesmo).
meu problema e o seguinte:
Fiz o programa todo com o DefaultTableModel agora preciso colorir as celulas e o DefaultTableModel, nao deixa fazer isso e estou tentando fazer um TableModel, TableRenderer etc… para fazer isso mas estou totalmente perdido, ja li varios tutoriais mas nao consigo fazer funcionar, ate o da SUN eu ja li umas 10x.

da uma olhada.

e nao consigo entender como fazer o ColorCellRenderer…

package TableModel;


import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;

public class MyTableModel extends AbstractTableModel /*implements TableModelListener*/ {

	private String[] columnNames; 
    private Object[][] data;
    
    public MyTableModel(String[] colNames, int row)
    {
    	super();
    	columnNames = colNames;
    	data = new Object[row][columnNames.length];
    }
    

    public int getColumnCount() {
        return columnNames.length;
    }

    public int getRowCount() {
        return data.length;
    }

    public String getColumnName(int col) {
        return columnNames[col];
    }

    public Object getValueAt(int row, int col) {
        return data[row][col];
    }

    public Class getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }

    public boolean isCellEditable(int row, int col) {
        return true;    
    }

    public void setValueAt(Object value, int row, int col) {
        data[row][col] = value;
        fireTableCellUpdated(row, col);
    }
    
	/*public void tableChanged(TableModelEvent e) {
		// TODO Auto-generated method stub
		int row = e.getFirstRow();
        int column = e.getColumn();
        TableModel model = (TableModel)e.getSource();
        String columnName = model.getColumnName(column);
        Object data = model.getValueAt(row, column);
	}*/
}

quando eu compilo tenho o seguinte erro.

java.lang.NullPointerException at TableModel.MyTableModel.getColumnClass(MyTableModel.java:40) at javax.swing.JTable.getColumnClass(Unknown Source) ...

JTable e um Inferno… nossa senhora. to apanhando demais desse negocio de TableRenderer, TableModel, etc…