Login com erro

Boa tarde,

Tenho uma tela login de usuários, quando o usuário faz a autenticação sem errar login senha, loga normalmente porém se ele errar login ou senha e tenta digitar a senha e login corretas informa que está errado mesmo sendo válido. Só a autêntica se fechar a tela e abrir novamente. Segue o código abaixo.

boolean tudoOk;
tudoOk = ValidaCampos();

if (!tudoOk == true)
    try {
        pstmt = con.prepareStatement("SELECT * FROM TB_USUARIO WHERE LOGIN='" +txtLogin.getText()+ "'");
        rs = pstmt.executeQuery();
        rs.next();

        if (rs.getString("SENHA").equals(txtSenha.getText())) {
            FrmPrincipal principal = new FrmPrincipal();
            principal.setVisible(true);
            dispose();
        } else {
            JOptionPane.showMessageDialog(null, "Senha ou Usuario Invalidos!");
        }
    } catch (Exception Erro) {
        JOptionPane.showMessageDialog(null, "Senha ou Usuario Invalidos!");
        LimpaCampos();
    } finally {
        BdConexaoDAO.closeConnection(con, pstmt);
    }