Pessoal, segui este tutorial do GUJ: http://www.guj.com.br/article.show.logic?id=147
Criei minha classe que extende a AbstractTableModel (ATM a partir de agora…)
Utilizei o designer do netbeans 6.5 para criar um JDialog com uma JTable,
O código ficou assim:
public void initJTable(){
String[] colunas = {"JButton", "JLabel", "Exemplo"};
String[][] dados = {null,null,null};
boolean [] editavel = {true, false, true};
GenericTabelModel gtb = new GenericTabelModel(dados, colunas, editavel);
jTable.setModel(gtb);
O problema é que quando executei o teste nessa janela, abre o JDialog, e antes de abrir a jtable gera uma exception de null pointer para o getValueAt(), que escrevi assim:
java.lang.NullPointerException
at com.br.modulo.tabela.GenericTabelModel.getValueAt(GenericTabelModel.java:59)
public Object getValueAt(int rowIndex, int columnIndex) {
return getLinhas()[rowIndex][columnIndex];
}
Para corrigir isso tive que colocar o método retornando return “”; ( uma string vazia!), o que não me serve, pois desejo uma ATM genérica.
Para testar, deixei “corrigido”, agora o problema se encontra no setValueAt()
que tbm gera uma exception de null pointer
o código se encontra aqui:
public void setValueAt(Object value, int rowIndex, int columnIndex) {
linhas[rowIndex][columnIndex] = value;
// fireTableCellUpdated(rowIndex, columnIndex);
fireTableDataChanged();
}
O que está errado, o problema com o get ocorre quando eu executo a classe, já o problema do set ocorre quando clico em qualquer célula EDITÁVEL.
Se algum puder me ajudar agradeço.