:: Jtable :: java.lang.NullPointerException --> AJUDEM!

2 respostas
C

Olá galera…

eu estou precisando usar uma tabela em meu programa, e fiz um só de teste para saber e entender como que funcionar…

Mas estou tendo problemas para PEGAR o que tem em tal celula…

Estou usando a função: getValueAt(lin, col)

Segue o Codigo da parte que dá o erro:

private void jButton1MouseReleased(java.awt.event.MouseEvent evt)
{
String selecionado = matriz.getValueAt(1,1).toString();
System.out.println("celula-->"+selecionado);        
}

O erro ocorre, quando eu seleciono a celula, digito alguma coisa e clico no botão que faz esse action…

Se eu escrevo na celula (1,1) e depois mudo de celula, não ocorre problema…

O problema é esse erro de:

java.lang.NullPointerException at matrix.jButton1MouseReleased(matrix.java:68) at matrix.access$100(matrix.java:2) at matrix$2.mouseReleased(matrix.java:26) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:232) at java.awt.Component.processMouseEvent(Component.java:5100) at java.awt.Component.processEvent(Component.java:4897) at java.awt.Container.processEvent(Container.java:1569) at java.awt.Component.dispatchEventImpl(Component.java:3615) at java.awt.Container.dispatchEventImpl(Container.java:1627) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128) at java.awt.Container.dispatchEventImpl(Container.java:1613) at java.awt.Window.dispatchEventImpl(Window.java:1606) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.EventQueue.dispatchEvent(EventQueue.java:456) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

Fico no aguardo!!!

abraços
ceará

2 Respostas

J

O problema é o seguinte, como vc mesmo descreveu, quando vc inseri algum valor na célula (1,1) não ocorre o problema.

String selecionado = matriz.getValueAt(1,1).toString();

O trecho acima (do seu código) vai tentar buscar o conteúdo da posição (1,1), no entanto, quando vc não inserir nada nesta posição, será retornado null aqui: matriz.getValueAt(1,1) e depois disso vc chama o método toString() de uma referência que é nula, por isso que gerar uma exceção de NullPointerException…

Para parar de dar esse erro, vc pode fazer um tratamento, onde vc testa antes se o valor desta célula é nula e retorna o que for conveniente pra vc… blz? :wink:

C

Opa cara, bacana…

Mas, eu posso depois passar para string??? Lembro que compilando essa linha sem o .toString() dava erro!!!

Mas o lance é o seguinte eu obervei aqui…

Tem realmente dado nessa celula, mas o java só “enxerga” que tem algum dado nessa celula depois que vc sai dessa celula!

Quando eu escrevo na celula e não saio dela, dá o pau…

Quando eu escrevo na celula e saio dela e vou para outra NAO dá o pau…

Quando eu escrevo na celula saio dela e volto para ela NAO dá o pau…

Então eh isso o problema, mas eu não sei se esse sair e voltar dela é focus ou é selection!!!

Valeu pela ajuda!!

Fico no aguardo!
Ceará

Criado 28 de maio de 2004
Ultima resposta 28 de mai. de 2004
Respostas 2
Participantes 2