Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Fechar TelaDeLogin ao Autenticar Usuário

Boa tarde,

Venho até vocês com uma nova dúvida. Acredito que seja algo idiota mas não estou conseguindo resolver.

O problema é o seguinte:

Eu quero fechar minha tela de login e abrir a tela de menu ao autenticar o usuário.

Código:

  • BOTÃO
   private void jButtonEntrarActionPerformed(java.awt.event.ActionEvent evt) {                                              

        try {
            controller.autenticar();
        dispose();

        } catch (SQLException ex) {
            Logger.getLogger(LoginView.class.getName()).log(Level.SEVERE, null, ex);
        }

    }  

O dispose onde ele está, fecha a tela de login só de apertar o botão de entrar, mesmo sem autenticar. Eu preciso que só seja feito o dispose após autenticar.

  • MÉTODO AUTENTICAR
//METODO AUTENTICAR
    public void autenticar() throws SQLException {

        //Buscar usuário da view

        Usuario obterModeloUsuario = helper.obterModeloUsuario();

        //Verificar se existe usuário no BD
        Connection conexao;
        conexao = new Conexao().getConnection();
        UsuarioDAO usuarioDao = new UsuarioDAO(conexao);

        boolean existe = usuarioDao.existeUsuario(obterModeloUsuario);

        if(existe == true){

            //TAMBÉM PODE SER FEITO ASSIM
            //MenuAdminView telaDeMenu = new      
            MenuAdminView().setVisible(true);

        } else{

            JOptionPane.showMessageDialog(view, "Usuário ou Senha inválidos");

        }

    }

Do conhecimento que tenho no momento, o dispose teria que estardentro desse if junto do setVisible(true). Porém não estou sabendo como fazer..

3 respostas

Fala Rafael.

Você mudar o retorno do seu método autenticar void para boolean e retornar true quando o usuário estiver autenticado.

//METODO AUTENTICAR
//RETORNA BOOLEAN
    public bolean autenticar() throws SQLException {

        //Buscar usuário da view

        Usuario obterModeloUsuario = helper.obterModeloUsuario();

        //Verificar se existe usuário no BD
        Connection conexao;
        conexao = new Conexao().getConnection();
        UsuarioDAO usuarioDao = new UsuarioDAO(conexao);

        boolean existe = usuarioDao.existeUsuario(obterModeloUsuario);

        if(existe == true){

            //TAMBÉM PODE SER FEITO ASSIM
               //MenuAdminView telaDeMenu = new      
               MenuAdminView().setVisible(true);

        //RETORNANDO TRUE AQUI
        return true;
        } else{
            JOptionPane.showMessageDialog(view, "Usuário ou Senha inválidos");
        }
    }
private void jButtonEntrarActionPerformed(java.awt.event.ActionEvent evt) {                                              

        try {
                boolean usuarioAutenticado = controller.autenticar();

        if(usuarioAutenticado ){ //Se usuarioAutenticado == TRUE executa dispose
                dispose();
        }

        } catch (SQLException ex) {
            Logger.getLogger(LoginView.class.getName()).log(Level.SEVERE, null, ex);
        }

    }  

Espero que te ajude!

solução!

Opa, vou fazer a tentativa e em breve retorno uma posição.

To fazendo várias coisas ao mesmo tempo aí tá meio confuso aqui hahahah

Porcaria, marquei a resposta errada como solução. Tem como alterar isso?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software