NullPointerException

4 respostas
B

ola galera …bom sou novo por aqui e espero q vcs possam me ajuda.

quando mando rodar o meu codigo ele da a seguinte mensagem.

Exception in thread “main” java.lang.NullPointerException

at teste.(teste.java:36)

at teste.main(teste.java:21)

não sei c facilita …mais o codico é esse.

import java.sql.<em>;

import javax.swing.</em>;

import java.awt.<em>;

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

import java.lang.*;
class teste extends JFrame implements ActionListener

{

JLabel jLabel1,jLabel2,jLabel3,jLabel4,jLabel5,jLabel6,jLabel7,

jLabel8,jLabel9,jLabel10,jLabel11,jLabel12,jLabel13;

JButton b1,b2,b3;

static JTextField jTextFieldNome, jTextFieldEndereco, jTextFieldCidade, jTextFieldCEP, jTextFieldEstado,

jTextFieldEmail, jTextFieldFone, jTextFieldDataNasc, jTextFieldNacionalidade, jTextFieldNaturalidade, jTextFieldRg,

jTextFieldCic;

JPanel p1 = new JPanel();

ResultSet rs;

Statement MeuState;
public static void main(String args[])

{

JFrame Janela = new teste();

Janela.show();

WindowListener x = new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

System.exit(0);

}

};

Janela.addWindowListener(x);

}
teste()

{

p1.setLayout(new FlowLayout(FlowLayout.LEFT));

jLabel1.setText(“Cadastro de Discente”);

p1.add(jLabel1);

jLabel1.setBounds(150, 10, 150, 23);
jLabel2.setText(“Nome:”);

p1.add(jLabel2);

jLabel2.setBounds(30, 40, 160, 23);

p1.add(jTextFieldNome);
jTextFieldNome.setBounds(30, 60, 370, 27);

jLabel3.setText(“Rg:”);

p1.add(jLabel3);

jLabel3.setBounds(30, 90, 20, 23);

p1.add(jTextFieldRg);
jTextFieldRg.setBounds(30, 110, 120, 27);

jLabel4.setText(“CIC:”);

p1.add(jLabel4);

jLabel4.setBounds(165, 90, 30, 23);

p1.add(jTextFieldCic);
jTextFieldCic.setBounds(165, 110, 120, 27);

jLabel5.setText(“Data Nascimento:”);

p1.add(jLabel5);

jLabel5.setBounds(300, 90, 100, 23);

p1.add(jTextFieldDataNasc);
jTextFieldDataNasc.setBounds(300, 110, 100, 27);

jLabel6.setText(“Endereço:”);

p1.add(jLabel6);

jLabel6.setBounds(30, 140, 80, 23);

p1.add(jTextFieldEndereco);
jTextFieldEndereco.setBounds(30, 160, 370, 27);

jLabel7.setText(“Cidade:”);

p1.add(jLabel7);

jLabel7.setBounds(30, 190, 48, 23);

p1.add(jTextFieldCidade);
jTextFieldCidade.setBounds(30, 210, 180, 27);

jLabel8.setText(“UF:”);

p1.add(jLabel8);

jLabel8.setBounds(225, 190, 42, 23);

p1.add(jTextFieldEstado);
jTextFieldEstado.setBounds(225, 210, 30, 27);

jLabel9.setText(“CEP:”);

p1.add(jLabel9);

jLabel9.setBounds(270, 190, 26, 23);

p1.add(jTextFieldCEP);
jTextFieldCEP.setBounds(270, 210, 130, 27);

jLabel10.setText(“Fone:”);

p1.add(jLabel10);

jLabel10.setBounds(30, 240, 48, 23);

p1.add(jTextFieldFone);
jTextFieldFone.setBounds(30, 260, 120, 27);

jLabel11.setText(“E-mail:”);

p1.add(jLabel11);

jLabel11.setBounds(165, 240, 50, 23);

p1.add(jTextFieldEmail);
jTextFieldEmail.setBounds(165, 260, 235, 27);

jLabel12.setText(“Naturalidade:”);

p1.add(jLabel12);

jLabel12.setBounds(30, 290, 80, 23);

p1.add(jTextFieldNaturalidade);
jTextFieldNaturalidade.setBounds(30, 310, 370, 27);

jLabel13.setText(“Nacionalidade:”);

p1.add(jLabel13);

jLabel13.setBounds(30, 340, 90, 23);

p1.add(jTextFieldNacionalidade);
jTextFieldNacionalidade.setBounds(30, 360, 370, 27);

b1=new JButton(“Novo”);

b2=new JButton(“Cadastrar”);

b3=new JButton(“Cancelar”);
b1.setBackground(new Color(180,180,250));

b2.setBackground(new Color(180,180,250));

b3.setBackground(new Color(180,180,250));
b1.addActionListener(this);

b2.addActionListener(this);

b3.addActionListener(this);

b2.setBounds(160, 400, 110, 33);
b1.setBounds(40, 400, 110, 33);

getContentPane().add(p1);

setTitle(“Cadastramento de Filmes”);

setSize(600,600);

setResizable(false);
String url = “jdbc:odbc:datacena”;

try

{

Class.forName( “sun.jdbc.odbc.JdbcOdbcDriver” );

Connection MinhaConexao = DriverManager.getConnection(url);

MeuState = MinhaConexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_READ_ONLY);

rs = MeuState.executeQuery(“SELECT * FROM Cadastro”);

rs.first();

atualizaCampos();

}

catch(ClassNotFoundException ex)

{

System.out.println(“Driver JDBC-ODBC não encontrado!”);

}

catch(SQLException ex)

{

System.out.println(“Problemas na conexao com a fonte de dados”);

}

}
public void actionPerformed(ActionEvent e)

{

if (e.getSource()==b1)

{

limpaCampos();

return;

}

if (e.getSource()==b2)

//inserir

{

try

{

String SQL = “INSERT INTO Cadastro (Rg,Cic,Nome,Endereco”+

“Cep,Cidade,Estado,Email,Telefone,Data_nascimento,Naturalidade,Nacionalidade) VALUES (’” +

jTextFieldRg.getText() + “’, '” +

jTextFieldCic.getText() + “’, '” +

jTextFieldNome.getText() + “’, '” +

jTextFieldEndereco.getText() + “’, '” +

jTextFieldCEP.getText() + “’, '” +

jTextFieldCidade.getText() + “’, '” +

jTextFieldEstado.getText() + “’, '” +

jTextFieldEmail.getText() + “’, '” +

jTextFieldFone.getText() + “’, '” +

jTextFieldDataNasc.getText() + “’, '” +

jTextFieldNaturalidade.getText() + “’, '” +

jTextFieldNacionalidade.getText() + “’)”;

MeuState.executeUpdate(SQL);

JOptionPane.showMessageDialog(null,“Gravação realizada com sucesso!”);

limpaCampos();

}

catch(SQLException ex)

{

if (ex.getMessage().equals(“General error”))

JOptionPane.showMessageDialog(null,“Filme já Cadastrado”);	

else	

JOptionPane.showMessageDialog(null,“Data Inválida”);	

}
}

// ------------------ Final da Inclusão -------------------

if (e.getSource()==b3)
   //cancela
  {
	setVisible(false);
    dispose();
  }

// ------------------ Final da cancelamento -------------------

}

public static void limpaCampos()

{

jTextFieldNome.setText("");

jTextFieldCEP.setText("");

jTextFieldCic.setText("");

jTextFieldEndereco.setText("");

jTextFieldRg.setText("");

jTextFieldCidade.setText("");

jTextFieldEstado.setText("");

jTextFieldEmail.setText("");

jTextFieldFone.setText("");

jTextFieldNacionalidade.setText("");

jTextFieldNaturalidade.setText("");

jTextFieldDataNasc.setText("");

}
public void atualizaCampos()

{

try

{

jTextFieldRg.setText(rs.getString(“Rg”));

jTextFieldNome.setText(rs.getString(“Nome”));

jTextFieldCic.setText(rs.getString(“Cic”));

jTextFieldEndereco.setText(rs.getString(“Endereco”));

jTextFieldCEP.setText(rs.getString(“Cep”));

jTextFieldCidade.setText(rs.getString(“Cidade”));

jTextFieldEstado.setText(rs.getString(“Estado”));

jTextFieldEmail.setText(rs.getString(“Email”));

jTextFieldFone.setText(rs.getString(“Telefone”));

jTextFieldDataNasc.setText(""+rs.getString(“Data_nascimento”));

jTextFieldNaturalidade.setText(rs.getString(“Naturalidade”));

jTextFieldNacionalidade.setText (rs.getString(“Nacionalidade”));

}

catch(SQLException ex)

{  }

}

}

valew :lol:

4 Respostas

fabiozoroastro

Utilize as tags BBCode para postar códigos.
Debugue sua classe e veja onde está ocorrendo o erro.
Você tem um objeto nulo e está invocando um método deste objeto, sendo que o objeto está nulo.
Abraço.

B

valew pela dica fabio

thiago.correa

Vamos lá, primeiro analise o erro:

Exception in thread "main" java.lang.NullPointerException
at teste.<init>(teste.java:36)

que quer dizer que você está apontando para um objeto nulo (classe teste na linha 36!!!). Na linha 36 está o seguinte trecho de código:

jLabel1.setText("Cadastro de Discente");

Dando uma vasculhada no teu código, vi que você não criou o objeto e sim, somente declarou, ou seja, para poder utilizar os métodos de um objeto ( que no seu caso é um do tipo JLabel) faça o seguinte

JLabel jLabel1 = new JLabel();
JLabel.setText("Cadastro:");

Lembre-se, de instanciar TODOS os seus objetos antes de usá-los.
Faltou um pouco de conhecimentos nos fundamentos da linguagem, e de codificação.

B

puts thiago …foi isso mesmo …muito obrigado
agora deu certo
abraços

Criado 8 de fevereiro de 2007
Ultima resposta 8 de fev. de 2007
Respostas 4
Participantes 3