Erro de java.lang.NullPointerException [Resolvido]

Ola pessol, preciso da ajuda de voces para solucionar um probleminha. Gostaria de saber porque o codigo abaixo da o seguinte erro

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at Aki$Executar_botmod.actionPerformed(Aki.java:1904)

os jtext mod1 e mod 2 ja foram criados normalmente
o jlabel tex tambem

int res;
int aa = Integer.parseInt(mod1.getText());

	   int bb = Integer.parseInt(mod2.getText());
 				    		   
	   res = aa % bb;
    
       tex.setText(String.valueOf(res));  

// quero que o label tex receba a variavel res! se eu tiro essa linha o codigo funciona mas nao mostra o resultado

Posta todo o seu código para eu verificar uma duvida na sua codificação .

Corrija-me se estiver errado.
Você tem um botãozinho ai pra calcular. Não tem?
Aparentemente nele está o problema.

abs

Alguma das variáveis (aa, bb, res) está nula. (null)

Oi,

Post exatamente o que tem na linha 1904.

Tchauzin!

Oi,

Não se esqueca de que poderá ocorrer o erro For input string nas linhas

int aa = Integer.parseInt(mod1.getText()); int bb = Integer.parseInt(mod2.getText());

Caso o conteudo do getText() for uma palavra.

Verifique se o conteudo do getText() é númerico antes de dar o parse.

Tchauzin!

sim lina mas como ele esta começando , nem adianta a gente qrer mostrar estes detalhes para ele ir tratando esta Exeception .

Oi,

Teoricamente por não saber o que seria NullPointer, poderemos dizer que ele é um “iniciante”. Mais uma coisa que sempre aprendi foi que não devemos menosprezar (não sei se essa é a palavra ou termo correto) os outros :wink:

Apenas quis alerta-lo =P

Estou esperando a resposta dele :wink:

Tchauzin!

Ok pessoal vou colocar pra voces darem uma olhadar e ver se encontra esse erro!

Olha o codigo completo ai embaixo:

//variaveis:

private JLabel tex; private JButton botmod; private JTextField mod2,mod1;

//instanciando

[code]JLabel tex = new JLabel("?");
container.add(tex);
tex.setBounds(50, 250, 150, 30);

mod1 = new JTextField();
mod1.setBounds(20, 300, 150, 30);

mod2 = new JTextField();
mod2.setBounds(390, 300, 150, 30);
[/code]

[code]private class Executar_botmod implements ActionListener{
public void actionPerformed(ActionEvent event){
try{

	   int res;
		   int aa = Integer.parseInt(mod1.getText());
	   
	   int bb = Integer.parseInt(mod2.getText());
 
				    		   
	res = aa % bb;
    

	tex.setText(String.valueOf(res));

     
   }
   catch(NumberFormatException exc){
      
      JOptionPane.showMessageDialog(null,"Formato de Número Incorreto","Erro",
                           JOptionPane.ERROR_MESSAGE);
      actionPerformed(event);
   
   }
}

}}[/code]

Obrigado

Oi,

Teoricamente por não saber o que seria NullPointer, poderemos dizer que ele é um “iniciante”. Mais uma coisa que sempre aprendi foi que não devemos menosprezar (não sei se essa é a palavra ou termo correto) os outros :wink:

Apenas quis alerta-lo =P

Estou esperando a resposta dele :wink:

Tchauzin!

[/quote]

Bom eu nao quiz menospreza-lo nao , o que tentei dizer foi que nao adiantaria falar para ele como tratar , antes de ao menos resolver o problema de null .

Já debugou e viu o que está na variável “res”?

ja rodei o debug e o resultado é correto!

Tais instanciando os componentes aonde? No construtor? Tem como colocar a classe completa?

Oi,

Olha… pelo que estou vendo, não existem NullPointer nesse seu código.
Ele poderia ocorrer.:

mod1.getText() // AQUI, se o mod1 estiver null, porém você já está instanciando ele mod2.getText() // AQUI, se o mod1 estiver null, porém você já está instanciando ele String.valueOf(res) // AQUI, se o res for null.

E agora?

Tchauzin!

E agora? lina ja tentei de tudo quando é jeito! Agora já que não tem jeito, eu não vou mais mostrar o resultado num label! rsrsrsr

vou retornar em um JOptionPane!

obrigada!

O null está dando nesta linha! não entendi o porque, pois o res retorna o módulo da operação!

essa é a linha 1094 que voce pediu lina!

tex.setText(String.valueOf(res));

[quote=handynoturno]O null está dando nesta linha! não entendi o porque, pois o res retorna o módulo da operação!

essa é a linha 1094 que voce pediu lina!

tex.setText(String.valueOf(res));[/quote]

olha, eu sou iniciante também, então não tenho certeza também.
Pelo que eu vi, voce acabou instanciando 2 JLabel’s “tex” : um dentro e um fora do construtor,
assim la no final voce está tentando acessar um JLabel não inicializado.

private JLabel tex; private JButton botmod; private JTextField mod2,mod1;

E aqui:

JLabel tex = new JLabel("?"); /// instanciou 'tex' denovo. Deixe apenas: "tex = new JLabel("?"); container.add(tex); tex.setBounds(50, 250, 150, 30); ...

Ve se agora funciona

Oi,

Não vamos desistir.

Mude seu código para isso ó:

[code]private class Executar_botmod implements ActionListener{
public void actionPerformed(ActionEvent event){
try{

	   int res;
		   int aa = Integer.parseInt(mod1.getText());
	   
	   int bb = Integer.parseInt(mod2.getText());
 
				    		   
	res = aa % bb;
    

	//tex.setText(String.valueOf(res));
tex.setText(""+res);

     
   }
   catch(NumberFormatException exc){
      
      JOptionPane.showMessageDialog(null,"Formato de Número Incorreto","Erro",
                           JOptionPane.ERROR_MESSAGE);
      actionPerformed(event);
   
   }
}

}}[/code]

Verifique se o NullPointer ainda continua.

Obs: Demorei pois estava almoçando!

Tchauzin!

hummm acho que a moça desvendou… realmente nao precisava do valueOf. Dava pra fazer a velha concatenação

Oi,

Ainda não…
pode ser que a variavel tex não foi alimentada, então ele está executando .setText em uma variavel nula.

Tchauzin!