Java.lang.NullPointerException

como gaço pra corrigir esse exception na minha consulta

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at sistemageral.Recibo.pesquisarRecibo(Recibo.java:338)
at sistemageral.Recibo.jBPesqActionPerformed(Recibo.java:313)
at sistemageral.Recibo.access$100(Recibo.java:21)
at sistemageral.Recibo$2.actionPerformed(Recibo.java:164)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

[quote=rodrigo.menezes]como gaço pra corrigir esse exception na minha consulta

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at sistemageral.Recibo.pesquisarRecibo(Recibo.java:338)
at sistemageral.Recibo.jBPesqActionPerformed(Recibo.java:313)
at sistemageral.Recibo.access$100(Recibo.java:21)
at sistemageral.Recibo$2.actionPerformed(Recibo.java:164)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
[/quote]
NullPointerException é atributo sem referencia, ou seja null.
posta seu codigo ai.

Seu código deve ter algum objeto não inicializado tentando chamar algum método, ou recebendo alguma atribuição.

esse é o que ta dando erro

public void pesquisarRecibo(){
String usuario = “select * from paciente”;
try {
int num=0;
num= Integer.parseInt(jtRegistro.getText());
TesteConexao pesquisar= new TesteConexao();
String sql="";

        sql ="select * from paciente Where codigo =num{codigo}" ;
        pesquisar.setResultSet(sql);
        if(pesquisar.resultSet.next()){
            //atualizarRecibo();
            JOptionPane.showMessageDialog(null," encontrado");
            jtResp.requestFocus();
        }
        else{
            JOptionPane.showMessageDialog(null,"Código não encontrado");
            jtRegistro.requestFocus();
            pesquisar.setResultSet(usuario);
        }
    } 
    catch (SQLException erro){
        JOptionPane.showMessageDialog(null,"Erro na Pesquisa");
    }
}

e aki é o de conexao

import java.sql.;
import javax.swing.
;

public class TesteConexao {

public static Connection connection=null;
public static Statement statement=null;
public static ResultSet resultSet=null;


public  static boolean getConexao(){
     try{
        
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       
        connection = DriverManager.getConnection("jdbc:odbc:Banco");
        statement  = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
        JOptionPane.showMessageDialog(null,"Conexão realizada com sucesso");
        return true;
    }
    catch(ClassNotFoundException erro){
        JOptionPane.showMessageDialog(null,"Driver JDBC-ODBC não encontrado!");
        
        return false;
        }
    catch(SQLException erro){
        JOptionPane.showMessageDialog(null,"Problemas na conexão com o banco de dados!");
        
        return false;
    }
}
public static void close(){
    closeResultSet();
    closeStatement();
    closeConexao();
    
}
private static void closeConexao(){
    try{
        connection.close();
    }
    catch(SQLException erro){
        JOptionPane.showMessageDialog(null,"Problemas na conexão com o banco de dados!");
                
    }
}
private static void closeStatement(){
    try{
        statement.close();
    }
    catch(SQLException erro){
        JOptionPane.showMessageDialog(null,"ERRO no closeStatement");
                 
    }
}
private static void closeResultSet(){
    try{
        resultSet.close();
    }
    catch(SQLException erro){
        JOptionPane.showMessageDialog(null,"Erro no closeResultSet");
         erro.printStackTrace();        
    }
}
public static void setResultSet(String sql){
    
    try {
        
        resultSet = statement.executeQuery(sql);
     
    }
    catch(SQLException erro){
        JOptionPane.showMessageDialog(null,"Erro na Pesquisa (setResultSet)");
        
    }
    
}
public static int runSql(String sql){
    int quant=0;
    try{
        quant = statement.executeUpdate(sql);
    }
    catch(SQLException erro){
        JOptionPane.showMessageDialog(null,"Erro no script sql de atualização-VERIFIQUE SE TODOS OS CAMPOS FORAM PREENCHIDOS CORRETAMENTE");
    }
    return quant;
}    

}

Que tipo de objeto é o jtResp ?
Você inicializou ele?

tem como postar o código com as tags code? :slight_smile:

me cadastrei hj como faço issso

Quando estiver respondendo a uma mensagem, tem uns botões acima do campo onde vc digita sua mensagem.

Clica em code, digite o codigo, e clica em code novamente.

Aqui fica seu código

[code] // esse é o metodo que ta dando o erro

public void pesquisarRecibo(){
String usuario = “select * from paciente”;
try {
int num=0;
num= Integer.parseInt(jtRegistro.getText());
TesteConexao pesquisar= new TesteConexao();
String sql="";

        sql ="select * from paciente Where codigo =num" ;
        pesquisar.setResultSet(sql);
        if(pesquisar.resultSet.next()){
            //atualizarRecibo();
            JOptionPane.showMessageDialog(null," encontrado");
            //jtResp.requestFocus();
        }
        else{
            JOptionPane.showMessageDialog(null,"Código não encontrado");
            jtRegistro.requestFocus();
            pesquisar.setResultSet(usuario);
        }
    } 
    catch (SQLException erro){
        JOptionPane.showMessageDialog(null,"Erro na Pesquisa");
    }
}[/code]

//e aqui é a classe de conexão

[code]import java.sql.;
import javax.swing.
;

public class TesteConexao {

public static Connection connection=null;
public static Statement statement=null;
public static ResultSet resultSet=null;


public  static boolean getConexao(){
     try{
        
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       
        connection = DriverManager.getConnection("jdbc:odbc:Banco");
        statement  = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
        JOptionPane.showMessageDialog(null,"Conexão realizada com sucesso");
        return true;
    }
    catch(ClassNotFoundException erro){
        JOptionPane.showMessageDialog(null,"Driver JDBC-ODBC não encontrado!");
        
        return false;
        }
    catch(SQLException erro){
        JOptionPane.showMessageDialog(null,"Problemas na conexão com o banco de dados!");
        
        return false;
    }
}
public static void close(){
    closeResultSet();
    closeStatement();
    closeConexao();
    
}
private static void closeConexao(){
    try{
        connection.close();
    }
    catch(SQLException erro){
        JOptionPane.showMessageDialog(null,"Problemas na conexão com o banco de dados!");
                
    }
}
private static void closeStatement(){
    try{
        statement.close();
    }
    catch(SQLException erro){
        JOptionPane.showMessageDialog(null,"ERRO no closeStatement");
                 
    }
}
private static void closeResultSet(){
    try{
        resultSet.close();
    }
    catch(SQLException erro){
        JOptionPane.showMessageDialog(null,"Erro no closeResultSet");
         erro.printStackTrace();        
    }
}
public static void setResultSet(String sql){
    
    try {
        
        resultSet = statement.executeQuery(sql);
     
    }
    catch(SQLException erro){
        JOptionPane.showMessageDialog(null,"Erro na Pesquisa (setResultSet)");
        
    }
    
}
public static int runSql(String sql){
    int quant=0;
    try{
        quant = statement.executeUpdate(sql);
    }
    catch(SQLException erro){
        JOptionPane.showMessageDialog(null,"Erro no script sql de atualização-VERIFIQUE SE TODOS OS CAMPOS FORAM PREENCHIDOS CORRETAMENTE");
    }
    return quant;
}    

}
[/code]//assim

jtRegistro foi inicializado? Ou seja, tem alguma linha do código q tem a chamada new pra esse objeto?

jtRegistro é um TextField que ta amazenado o seu valor na variavel num

E o textfield ja foi inicializado?

Faz um catch (NullPointerException) pra todos os try’s, assim fica mais fácil achar onde tá a referencia nula.

Procure a classe Recibo.java, olhe o código da linha 33 e cole aqui. É nessa linha que está sendo propagado o erro.

[]'s.

deu erro no catch nullexception do metodo pesquisarRecibo será que é o valor que ta sendo passando no comando sql

[quote=kaique]Procure a classe Recibo.java, olhe o código da linha 33 e cole aqui. É nessa linha que está sendo propagado o erro.

[]'s.[/quote]linha 33 é comentario ja definido do netbeans

[quote=rodrigo.menezes][quote=kaique]Procure a classe Recibo.java, olhe o código da linha 33 e cole aqui. É nessa linha que está sendo propagado o erro.

[]'s.[/quote]linha 33 é comentario ja definido do netbeans[/quote]

Foi mal. Não prestei atenção a figura que apareceu na sua primeira mensagem. A linha correta onde o erro está sendo propagado é a linha 338.
Cola ela aqui pra gente ver o que pdoe estar acontecendo…

[]'s.

[quote=kaique][quote=rodrigo.menezes][quote=kaique]Procure a classe Recibo.java, olhe o código da linha 33 e cole aqui. É nessa linha que está sendo propagado o erro.

[]'s.[/quote]linha 33 é comentario ja definido do netbeans[/quote]

Foi mal. Não prestei atenção a figura que apareceu na sua primeira mensagem. A linha correta onde o erro está sendo propagado é a linha 338.
Cola ela aqui pra gente ver o que pdoe estar acontecendo…

[]'s.[/quote]// tai apartir da 336

sql ="select * from paciente Where codigo ='num'" ; TesteConexao.setResultSet(sql); if(TesteConexao.resultSet.next()){ //atualizarRecibo(); JOptionPane.showMessageDialog(null," encontrado"); //jtResp.requestFocus(); } else{ JOptionPane.showMessageDialog(null,"Código não encontrado"); jtRegistro.requestFocus(); TesteConexao.setResultSet(usuario); } } catch (SQLException erro){ JOptionPane.showMessageDialog(null,"Erro na Pesquisa"); } catch(NullPointerException erro){ erro.printStackTrace(); JOptionPane.showMessageDialog(null,"Erro na Consulta"); }

agora que vc fez o catch (NullPointerException) ta aparecendo a mensagem de erro da JOptionPane q ta dentro deste catch?

ta sim no catch dentro do metodo Pesquisar recibo

Cara ainda to desconfiado do seu jtRegistro. Tem certeza que ja tem uma chamada new pra esse objeto?

jtRegistro = new javax.swing.JTextField();

linha 35 da classe