Erro Tela de Login com Mysql

Boa tarde,

Estou com um problema referente a tela de Login, Alguem poderia me ajudar, eu digito o user e a senha, so que da a msg de “Erro ao tentar abrir a tabela”

`private void btnLogarActionPerformed(java.awt.event.ActionEvent evt) {                                         
    //if(){
    //
    //}else{
    //
    //}
    try {
        String f, c;
        Conexao obj =  Conexao.getInstance();

        //               JFrmMdi m =new JFrmMdi();
        ResultSet rs;
        java.lang.String senha = txSenha.getText();

        //             sql="select idLogin, usuario, senha from usuario where usuario='" + this.txUsuario.getText() + "' and senha='" + senha + "' and funcao='ADMINISTRADOR'";
        //   sql = "select idLogin, usuario, senha from usuario where usuario='" + this.txUsuario.getText() + "' and senha=password'" + (senha) + "'";
        //            sql = "select idLogin, usuario, senha from usuario where usuario='" + this.txUsuario.getText() + "' and senha='" + senha + "'";
        java.lang.String sql = "select idLogin, usuario, senha from usuario where usuario='" + this.txUsuario.getText() + "' and senha='" + senha + "'";

        rs = obj.consultar(sql);
        System.out.println(rs);

        System.out.println(sql);

        java.lang.String b = txUsuario.getText();
        System.out.println(b);

        //p=jTextField2.getText();
        java.lang.String p = senha;
        System.out.println(p);

        boolean encuentra = false;
        //rs.first();

        java.lang.String a = txUsuario.getText();
        System.out.println(a);

        while (rs.next()) {
            if (b.equals(rs.getString(2)) && p.equals(rs.getString(3))) {
                System.setProperty("Login", a);
                System.out.println("usuario: " + System.getProperty("Login"));
                //                    new PrincipalTela(true).setVisible(encuentra);
                System.out.println(b);
                System.out.println(p);
                System.out.println(a);
                this.dispose();
                encuentra = true;
                System.out.println(encuentra);
                Date data = new Date();
                java.lang.String data2 = "2015-01-02";

            //                    rs.close();
            }
        }
        rs.close();
        if (encuentra == true) {
            //                JOpt%ionPane.showMessageDialog(null, " Bem Vindo,\nObrigado!", "Sistema Gerenciador de Academias V.1.0", JOptionPane.INFORMATION_MESSAGE);
            //txUsuario.requestFocus();
            //  m.getJMenuBar().getMenu(0).getItem(0).getModel().setEnabled(false);
            new com.moduloti.view.PrincipalTela(true).setVisible(encuentra);
            
        }

        if (encuentra == false) {
            JOptionPane.showMessageDialog(null, "Usuário ou senha inválidos!", "VERIFICAR", JOptionPane.ERROR_MESSAGE);
            txUsuario.requestFocus();
            txUsuario.setText("");
            txSenha.setText("");
        }

    } catch (Exception ex) {
        //System.out.println(ex.getMessage());
        JOptionPane.showMessageDialog(null, "Erro ao tentar abrir a tabela", "ERRO", JOptionPane.ERROR_MESSAGE);
        txUsuario.setText("");
        txSenha.setText("");
    }

}                                

`

Sugiro descomentar a linha //System.out.println(ex.getMessage()); para ver qual o erro que está acontecendo,pois da forma que está você está ocultando e exibindo uma msg personalizada

Bom dia

`catch (Exception ex) {
        //JOptionPane.showMessageDialog(null, "Erro ao tentar abrir a tabela", "ERRO", JOptionPane.ERROR_MESSAGE);
        JOptionPane.showMessageDialog(null, "Erro ao tentar abrir a tabela "+ ex.getMessage());
        txUsuario.setText("");
        txSenha.setText("");
    }

`
Mensagem: Erro ao tentar abrir a tabela null


`catch (Exception ex) {
        //JOptionPane.showMessageDialog(null, "Erro ao tentar abrir a tabela", "ERRO", JOptionPane.ERROR_MESSAGE);
        JOptionPane.showMessageDialog(null, "Erro ao tentar abrir a tabela "+ex);
        txUsuario.setText("");
        txSenha.setText("");
    }`

Mensagem: Erro ao tentar abrir a tabela java.lang.NullPointerEception

Pessoal, alguém poderia me ajudar nesse problema?

Segue as informacoes conforme vc pediu

Amigo, só com esse trecho de código não da para perceber nada, mas parece que tem algo errado na tela que você está tentando abrir e você está fechando o formulário de login antes de terminar a execução do método, isto também pode trazer problemas. Dá um setvisible(false) e dispose só no fim ou separa os métodos de validação da classe do frame. Posta o Exception inteiro.

Pelo que eu li do outro comentário está causando NullPointerException, logo o programa está tentando acessar um método de um objeto referente a null. O que eu recomendo é que nesse catch (Exception) você mande “ex.printStackTrace()” assim você consegue ver qual o caminho percorrido e em que linha exatamente deu o problema.

Se você estiver programando com netbeans ou eclipse recomendo você depurar essa parte do código e ir vendo passo a passo e quais os valores dos objetos em questão, assim você pode saber o que está deixando nulo ou o que está vindo nulo.

Em geral NullPointerException não da pra ver somente com um trecho a não ser que seja muito escancarado.

Olhei bastante seu código e vi as inicializações, no meu ver o que pode estar dando problema é o rs, ou o this.dispose(); você pode mudar para uma linha antes de entrar no catch(), também vi que sua variável a é igual a b, e você faz uma confusão muito grande com as variáveis, instanciando várias, sendo que não era necessário, pois o getText() retorna uma String e você pode usar txUsuario.getText().equals(rs.getString(2)); Você não colocar nomes fáceis de entender para que a variável serve atrapalha e muito a podermos te ajudar, se quer ter uma string que pega o valor do usuário coloca o nome da string de usuario, ficaria String usuario = txUsuario.getText(); Essa forma que você usa do System.out.println para debug é boa, mas toda vez que você viu que deu certo você tira para os próximos testes os que deram certo. Depois coloca para a gente todas as saidas que deu no seu System.out.println();