Montagem de Interface para JOGO

15 respostas
newbcc

Olá pessoal, esse é o meu primeiro post, e claro, antes de enviar a minha dúvida eu busquei informações sobre o erro que está dando, mas não encontrei nada que me ajudasse…
O problema é o seguinte, o código está sendo compilado sem erros; a interface do programa é criada, digito os valores nos “campos de texto” e clico no botão esperado… ele está dando o seguinte erro…

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException

at JoKenPo$Jogar.actionPerformed(JoKenPo.java:302)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)

at java.awt.Component.processMouseEvent(Component.java:5488)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)

at java.awt.Component.processEvent(Component.java:5253)

at java.awt.Container.processEvent(Container.java:1966)

at java.awt.Component.dispatchEventImpl(Component.java:3955)

at java.awt.Container.dispatchEventImpl(Container.java:2024)

at java.awt.Component.dispatchEvent(Component.java:3803)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)

at java.awt.Container.dispatchEventImpl(Container.java:2010)

at java.awt.Window.dispatchEventImpl(Window.java:1774)

at java.awt.Component.dispatchEvent(Component.java:3803)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

… eu sei que é nessa linha 302, aonde eu tenho esse seguinte comando, e o resto é consequência desse erro:
jgrTeste.n = Integer.parseInt(txtfldNumero.getText());

aonde “jgrTeste” é objeto instanciado da classe “Jogo”…

A dúvida é: eu não sei o quê está acontecendo; tá, imagino que ele não esteja reconhecendo o comando a ser feito… vocês tem idéia de como posso resolve-los?

Desde já agradeço à todos que me ajudarem…

15 Respostas

_Renatu

o NullPointer sempre dá quando você tenta acessar algum método ou atributo de algum objeto que não tem valor associado (ou seja, é nulo).

no seu caso, ou jgrTeste ou txtfldNumero não foram iniciados, ou foram setados nulos.

De uma olhada direitinho no seu código, ou então posta ele pra gente dar uma olhada…

wanderley.drumond

Qual é o tipo da tua variável jgrTeste?

Esse parser está esquisito…

newbcc

wanderley.drumond:
Qual é o tipo da tua variável jgrTeste?

Esse parser está esquisito…

então cara, “jgrTeste”, é objeto instanciado da classe “Jogo”

newbcc

_Renatu:
o NullPointer sempre dá quando você tenta acessar algum método ou atributo de algum objeto que não tem valor associado (ou seja, é nulo).

no seu caso, ou jgrTeste ou txtfldNumero não foram iniciados, ou foram setados nulos.

De uma olhada direitinho no seu código, ou então posta ele pra gente dar uma olhada…

então velho, deve-se iniciar uma caixa de edição? Tipo, ele foi declarado dessa forma aqui:

JTextField txtfldNumero = new JTextField(10);

wanderley.drumond

Cara aí vc só instanciou, não inicializou. Foi isso o q o _Renatu disse.

E perguntei tbm como vc declarou a variável jgrTeste.

newbcc

wanderley.drumond:
Cara aí vc só instanciou, não inicializou. Foi isso o q o _Renatu disse.

E perguntei tbm como vc declarou a variável jgrTeste.

bom, só se eu não estou sabendo passar a minha dúvida :slight_smile: mas “jgrTeste” não é variável para mim, se for ela deveria ser iniciado do tipo:

jgrTeste = 0 ou jgrTeste = NULL ???

é assim? Valew :slight_smile:

newbcc

osmio:
[Comentário não necessário]
Já dizia um velho amigo meu:
Todo programador deveria levar um “cascudo” por cada NullPointerException…
[/Comentário não necessário]

Até!

ashaushaushau que demais!!1 Pô, nunca tinha “ouvido” uma dessas… mas concordo cara… mas aí que está a idéia, eu estou pedindo ajuda para consertar esse erro, como deu para notar, eu não sei aonde/como : P
… então que as críticas venham, mas que sejam acompanhadas pelas respostas…

valew…

newbcc

osmio:
Ta bom ta bom…

Vai minha sugestão:
Voce utiliza alguma IDE? Tipo Eclipse, ou NetBeans?

Em caso afirmativo, utiliza o depurador pra “caçar” a variável que vc esta utilizando sem inicializar.

Até!

… estou usando o JCreator !!! A variável no caso “n” da classe “Jogar” já havia sido inicializada e também já fiz testes sem inicializá-la…

mas valeu pela dica de qlqr jeito… : )

dudaskank

Bom, não conheço o JCreator, mas é possível que você tenha algum modo de debug nele.

Caso não tenha, para ver o conteúdo dessas variáveis, faça como eu fazia antigamente:

System.out.println(jgrTeste);
System.out.println(jgrTeste.n);
System.out.println(txtfldNumero);
System.out.println(txtfldNumero.getText());

É provável que em um deles de a exceção novamente, então você facilmente saberá o que não está sendo inicializado.

boa sorte

wanderley.drumond

Caramba, vc tá fazendo um jogo no JCreator? Corajoso hein? O JCreator é uma versão muito acadêmica, pra quem está aprendendo java, afinal ele não passa de um bloco de notas de letras coloridas.

Como foi dito anteriormente poste i teu código que ficará mais fácil de resolver o teu problema

ViniGodoy

Não entendi. Vc colocou a palavra JOGO em letras garrafais ali no título… e não falou nada do jogo em si!
:-o

newbcc

Caros amigos, agradeço por demais a ajuda que vocês me deram, com muita luta e esforço encontrei o que estava fazendo de errado, mas antes de falar o que era umas explicações:

  • beleza, eu sei que o JCreator é uma versão acadêmica de aprendizado, não estou utilizando uma API para efetivamente elaborar um jogo de verdade, é simplesmente um exercício;

  • tá, eu exagerei no título do fórum, é a primeira vez que participo de um fórum sobre JAVA, os próximos posts serão melhores especificados

Então, o problema era o seguinte: na minha classe principal, antes de definir o meu construtor eu declarei variáveis dos tipos “JTextField” entre outras; dentro do construtor - aonde estou mapeando os meus objetos para montagem da interface - eu estava colocando essa linha aqui JTextField txtfldNumero = new JTextField(10); sendo que eu já havia declarado a variável “txtfldNumero” fora do escopo do construtor, então estava dando uma espécie de conflito entre tipos iguais com mesma variável em escopos diferentes… resolvido o problema!!!

vlw pela paciência também : )

Spool

[Comentário não necessário]
Já dizia um velho amigo meu:
Todo programador deveria levar um “cascudo” por cada NullPointerException…
[/Comentário não necessário]

Até!

Spool

Ta bom ta bom…

Vai minha sugestão:
Voce utiliza alguma IDE? Tipo Eclipse, ou NetBeans?

Em caso afirmativo, utiliza o depurador pra “caçar” a variável que vc esta utilizando sem inicializar.

Até!

Spool

O que pode estar acontecendo é que vc esta inicializando essa variavel dentro de um metodo e tentar acessa-la em outro antes de o metodo que a inicialize ser chamado.

Até!

Qq coisa poste o codigo. Fica mais fácil pra opinar.

Criado 13 de dezembro de 2007
Ultima resposta 14 de dez. de 2007
Respostas 15
Participantes 6