NullPointerException! Me ajudem por favor [RESOLVIDO]

9 respostas
O

Gente, é o seguinte, estou fazendo desenvolvendo uma agenda onde o usuário pode cadastrar os contatos que ele deseja.
Eu fiz a classe de conexão com o banco de dados, a classe contatos e a classe principal (a que leva o metodo main).
Na hora em pegar o dado do JTextField para passar para o metodo setnome (exemplo) da esse erro… vou colocar o código aqui para vocês darem uma olhada, se puderem me ajudar, agradeço.

Classe principal

public class menu_principal extends javax.swing.JFrame 
{
 conexao MyCon;
 contatos Cont;

private void salvarActionPerformed(java.awt.event.ActionEvent evt) 
{
 try
 {
   Cont.setnome(field_nome.getText());
   Cont.setsobrenome(field_sobrenome.getText());
   Cont.setend(field_endereço.getText());
   Cont.setemail(field_email.getText());
   Cont.settel(Integer.parseInt(field_telefone.getText()));
   Cont.setcel(Integer.parseInt(text_cel.getText()));

   Cont.incluircont(Cont.getnome(), Cont.getsobrenome(), Cont.getemail(),
                          Cont.getend(), Cont.gettel(),Cont.getcel());
  }
  catch(Exception e)
  {
   JOptionPane.showMessageDialog(null,"erro na att - " + e);
  }

  public static void main(String args[]) 
 {
  conexao MyCon = new conexao();
  contatos Cont = new contatos();
  java.awt.EventQueue.invokeLater(new Runnable() {
 }

Classe Contatos

package menu;

import java.beans.Statement;
import java.sql.SQLException;
import java.sql.ResultSet;

public class contatos 
{
 //Atributos
 private String nomecont;
 private String sobrenomecont;
 private String emailcont;
 private String endcont;
 private int telcont;
 private int celcont;
 conexao MyCon;
 ResultSet rs;

 //Construtor
 public contatos()
 {
  conexao MyCon = new conexao();
  rs = null;
 }
 
 //Metodos set
 public void setnome(String nome){nomecont=nome;}
 public void setsobrenome(String sobrenome){sobrenomecont=sobrenome;}
 public void setemail(String email){emailcont=email;}
 public void setend(String end){endcont=end;}
 public void settel(int tel){telcont=tel;}
 public void setcel(int cel){celcont=cel;}
 
 //metodos get
 public String getnome(){return nomecont;}
 public String getsobrenome(){return sobrenomecont;}
 public String getemail(){return emailcont;}
 public String getend(){return endcont;}
 public int gettel(){return telcont;}
 public int getcel(){return celcont;}
 
 /*********metodos gerais********/

 //Insere um contato no banco de dados.
 public Boolean incluircont(String nomecont,String sobrenomecont,
                            String emailcont,String endcont,int telcont,
                            int celcont)
 {
  try
  {
   MyCon.statement.execute("Insert Into PI2011 Values('"+nomecont+"', "
                           + "'"+sobrenomecont+"', '"+emailcont+"', '"+endcont+
                           "', "+telcont+", "+celcont+")");
   return(true);
  }
  catch(Exception exception)
  {
   return(false);
  }
 }

Classe de Conexão

package menu;

//Pacotes SQL
import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.SQLException;

public class conexao
{
 //Constantes que irá fazer conexão com banco de dados
 static final String driver = "com.mysql.jdbc:Driver";
 static final String url = "jdbc:mysql://localhost/PI2011";
 
 String usuario = "root";
 String senha   = "12345";
 
 Connection connection = null;
 Statement statement = null;
 
 //Metodo de conexão com BD
 public void conn()
 throws ClassNotFoundException, Exception
 {
  try 
  {
   Class.forName(driver);
   connection = DriverManager.getConnection(url, usuario, senha);
   statement = connection.createStatement();
  }
  catch(ClassNotFoundException notfound)
  {
   System.out.println("Não foi achada a classe - " + notfound);
  }
  catch(SQLException e)
  {
   System.out.println("Problemas com o BD - " + e);
  }    
 }
 
 public static boolean fecharConexao (Connection con) throws ClassNotFoundException
 {
  try
  {
   con.close();
   return true;
  }
  catch (SQLException e)
  {
   System.out.println("Problemas com o BD - " + e);
  }
  //Se ocorrer problema no fechamento, retorna false.
  return false;
 }
}

Ps: Estou desenvolvendo no NetBeans 6.9

Flws, fiquem com Deus

9 Respostas

lina

Oi,

Iria facilitar muito se você colocasse o stack do erro…

Tchauzin!

nel

lina:
Oi,

Iria facilitar muito se você colocasse o stack do erro…

Tchauzin!

Além disso, onde tu instancia a variavél Cont?
E altere o nome disso para cont, normalmente, apenas utiliza-se nome de variavél iniciando-se em maiusculo quando trata-se de variaveis estáticas.

Abraços.

adriano_si

Aí na minha assinatura tem tbm o padrão de nomenclatura Oficial do Java… Use-o também, ajudará pra caramba.

Abs []

O

Nas linha 06 à 23 é quando eu clico no botão para passar os dados do JTextField ao Banco de dados e é onde aparece o erro "java.lang.NullPointerException. E eu instanciei a variavel cont na linha 28 da classe principal. outra coisa é que a classe principal não está completa, só destaquei as partes que eu achei necessarias para vcs verem o que esta acontecendo de errado!

nel

Amigo, se instanciou no local errada de nada adianta.
E por favor, faça o que a lina pediu, poste o Stacktrace, caso contrário, fica bem complexo de ajudarmos.

E detalhe, poste o código completo, melhor hein.
Abraços.

williamdasflores

Você ja tentou instanciar a classe contato no metodo salvarAction…?

ViniGodoy

NullPointerException está entre os erros mais fáceis de se corrigir:

  1. Vá até a linha que o stackTrace indica;
  2. Ponha lá um breakpoint;
  3. Veja o que está nulo.
  4. Corrija o problema.

Ah, e evite pedidos de ajuda desesperados no título do seu tópico. Deixe somente um título claro, que indique o seu problema.
E lembre-se que tópicos de interface gráfica, são no fórum de interface gráfica.

P

Acho que o problema esta neste trecho:

//Construtor public contatos() { conexao MyCon = new conexao(); rs = null; }
tira o rs=null;

O

Ow galera eu pedi ajuda a um amigo meu que desenvolve em Java a um tempo e acabei conseguindo achar o problema, é que eu tinha deixado de fazer um mooonte de coisas e deu esse erro ae. Valeu pelas dicas e por terem respondido o topico mesmo eu não sabendo explicar o que eu estava precisando, e desculpa ae a noobice.

E realmente ViniGodoy, eu deveria fazer o teste do breakpoint mesmo, mas quase sempre eu não me lembro disso =/.
Mas obrigado a todos.

Deus os abençoe!

Criado 14 de junho de 2011
Ultima resposta 15 de jun. de 2011
Respostas 9
Participantes 7