Programa compila,mas não executa

4 respostas
R
Agradeço a ajuda para desvendar esse problema.

Não executa e  Exception in thread "main"java.langNullPointerException.

import java.awt.<em>;

import java.awt.event.</em>;

import javax.swing.*;
public class ComparaStrings extends JFrame

{

private JLabel stringA,stringB;

private JTextField palavraA,palavraB;

private JTextArea outputArea;

private String s1,s2,output;
public ComparaStrings()

{

super(Compara Strings);

Container c=getContentPane();

c.setLayout(new FlowLayout());

stringA=new Jlabel(Palavra A);

palavraA=new JTextField(10);

palavraA.addActionListener(

new ActioListener() {

public void  actionPerformed(ActionEvent e)

{

s1=e.getActionCommand();

}

}

);

c.add(stringA);

c.add(palavraA);
stringB= new JLabel(Palavra B);

palavraB=new JTextFeld(10);

palavraB.addActionListener(

new ActionListener() {

public void actionPerformed(ActionEvent e)

s2=e.getActionCommand();

}

}

);

c.add(stringB);

c.add(palavraB);

outputArea=new JTextArea(10,20);
int i=s1.compareTo(s2);
if(i&gt;0)
output=s1 +" é maior que s2 "+s2;
else
output+=s1 +" é menor que s2 "+s2;
if(i==0)
output+=s1 +" é igual a "+s2;
outputArea.setText(output);

set size(275,260);
show();
}
public static void main (String args[])
{
   ComparaStrings appl = new ComparaStrings();
   appl.addWindowListener(
      new WindowAdapter() {
        public void windowClosing(WindowEvent we)
        {
          System.exit(0);
      }
     }
    );
  }
 }

4 Respostas

jgbt

Cara,
Não tive tempo de revisar o seu codigo, mas essa exception dispara quando vc tenta referenciar algum objeto que ainda não foi inicializado ou instanciado.
Da uma revisada e procura alguma coisa desse tipo.
Espero ter te ajudado.

[]'s

cv1

Rosauro, já tentou passear pelo código com um bom debugger e ver onde está o problema?

Bani

Eu executei o programa aqui (após corrigir todos os erros de digitação) e a NullPointerException deu na linha “int i=s1.compareTo(s2);” pois o s1 está null.
Sempre que você receber uma NullPointerException, verifique na stack trace em que linha aconteceu o erro, e aí veja o que tem nela que pode estar nulo.
Eu não entendi muito bem o que você tentou fazer nesse seu construtor, e apesar de não costumar trabalhar com interfaces gráficas estou achando bem estranho esse negócio de você colocar o listener dentro do construtor. Você tem que estruturar melhor o seu código de forma que a linha “s1=e.getActionCommand();” seja chamada no momento certo.

R

Meus agradecimentos a jgbt,cv e Bani.Seguindo suas dicas e colocando
int i=s1.compareTo(s2) logo abaixo de s2=e.getActionCommand() e mais pequenas ateraço~es resolvi o problema. Bani o listener dento do construtor é prática usual .

Criado 6 de agosto de 2003
Ultima resposta 6 de ago. de 2003
Respostas 4
Participantes 4