Problema ao tentar utilizar AbstractTableModel

1 resposta
P

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.

1 Resposta

Marky.Vasconcelos

Cara… para problemas como esse eu criei um TableModel e escrevi sobre ele aqui http://markytechs.wordpress.com/2009/05/29/objecttablemodel/

É uma forma mais inteligente de se trabalhar com TableModels.

Criado 7 de junho de 2009
Ultima resposta 8 de jun. de 2009
Respostas 1
Participantes 2