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  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