Como fazer para limitar o número de tentativas de acesso ao login de um sistema comercial

22 respostas
M

Ola pessoal gostaria que alguem me ajude nesse problema de limitar o número de tentativas do usuário no login.

22 Respostas

faelbsr

Crie um contador… A cada falha você incrementa e compara com o número máximo de tentativas…

Spammer

acho que tambem deveria haver alguma forma de controlar o tempo em que a condição de bloqueio “explodiu”, criando um campo na base de dados (que deve existir provavelmente) que guarda o tempo da tal “explosão” e vai comparando com o tempo que o utilizador tenta de novo entrar no sistema (por exemplo: o tempo deveria ser mais de 10 min) 8)

faelbsr

Isso, se for uma aplicação web basta utilizar o cookie ou a sessão …

M

Ai galera ta ai meu codigo de login, alguem sabe onde é que muda para limitar para o usuário ter só duas tentativas?

package br.com.lokfilmes.view;

import br.com.lokfilmes.bean.Funcionario;

import br.com.lokfilmes.util.EncriptaSenha;

import java.beans.Beans;

import java.util.List;

import javax.swing.JOptionPane;

/**
*

  • @author Márcio
    
    <em>/
    
    public class LoginView extends javax.swing.JFrame {
    
    /</em>* Creates new form LoginView */
    
    public LoginView() {
    
    initComponents();
    
    if (!Beans.isDesignTime()) {
         entityManager.getTransaction().begin();
     }
    

    }

    /** This method is called from within the constructor to

    • initialize the form.

    • WARNING: Do NOT modify this code. The content of this method is

    • always regenerated by the Form Editor.
      
      */
      
      @SuppressWarnings(unchecked)
      
      // 
      
      private void initComponents() {
      
      entityManager = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory(lokfilmesPU).createEntityManager();
      
      query = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery(SELECT f FROM Funcionario f);
      
      list = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : query.getResultList();
      
      jLabel2 = new javax.swing.JLabel();
      
      btCancelar = new javax.swing.JButton();
      
      btConfirmar = new javax.swing.JButton();
      
      jLabel6 = new javax.swing.JLabel();
      
      jPanel2 = new javax.swing.JPanel();
      
      jLabel1 = new javax.swing.JLabel();
      
      jLabel8 = new javax.swing.JLabel();
      
      jPanel1 = new javax.swing.JPanel();
      
      jLabel3 = new javax.swing.JLabel();
      
      jLabel4 = new javax.swing.JLabel();
      
      jLabel5 = new javax.swing.JLabel();
      
      txtLogin = new javax.swing.JTextField();
      
      txtSenha = new javax.swing.JPasswordField();
      
      setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
      
      setTitle(Login);
      
      addKeyListener(new java.awt.event.KeyAdapter() {
      
      public void keyPressed(java.awt.event.KeyEvent evt) {
      
      formKeyPressed(evt);
      
      }
      
      });
      

      jLabel2.setFont(new java.awt.Font(“Tahoma”, 1, 14));
      jLabel2.setText(“Acesso ao Sistema”);

      btCancelar.setText(Cancelar);
      
      btCancelar.addActionListener(new java.awt.event.ActionListener() {
      
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      
      btCancelarActionPerformed(evt);
      
      }
      
      });
      
      btConfirmar.setText(Confirmar);
      
      btConfirmar.addActionListener(new java.awt.event.ActionListener() {
      
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      
      btConfirmarActionPerformed(evt);
      
      }
      
      });
      
      btConfirmar.addKeyListener(new java.awt.event.KeyAdapter() {
      
      public void keyPressed(java.awt.event.KeyEvent evt) {
      
      btConfirmarKeyPressed(evt);
      
      }
      
      });
      

      jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/lokfilmes/imagens/1319139924_preferences-desktop-cryptography.png"))); // NOI18N

      jLabel8.setFont(new java.awt.Font(Bernard MT Condensed, 0, 18));
      
      jLabel8.setForeground(new java.awt.Color(255, 0, 0));
      
      jLabel8.setText(LOGIN);
      

      jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));

      jLabel3.setText(“Entre com os dados”);

      jLabel4.setText(“Login”);

      jLabel5.setText(“Senha”);

      txtLogin.addActionListener(new java.awt.event.ActionListener() {
      
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      
      txtLoginActionPerformed(evt);
      
      }
      
      });
      
      javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
      
      jPanel1.setLayout(jPanel1Layout);
      
      jPanel1Layout.setHorizontalGroup(
      
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(jPanel1Layout.createSequentialGroup()
      
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(jPanel1Layout.createSequentialGroup()
      
      .addGap(21, 21, 21)
      
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
      
      .addGroup(jPanel1Layout.createSequentialGroup()
      
      .addComponent(jLabel4)
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
      
      .addComponent(txtLogin, javax.swing.GroupLayout.PREFERRED_SIZE, 215, javax.swing.GroupLayout.PREFERRED_SIZE))
      
      .addGroup(jPanel1Layout.createSequentialGroup()
      
      .addComponent(jLabel5)
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      
      .addComponent(txtSenha))))
      
      .addGroup(jPanel1Layout.createSequentialGroup()
      
      .addGap(98, 98, 98)
      
      .addComponent(jLabel3)))
      
      .addContainerGap(25, Short.MAX_VALUE))
      
      );
      
      jPanel1Layout.setVerticalGroup(
      
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(jPanel1Layout.createSequentialGroup()
      
      .addContainerGap()
      
      .addComponent(jLabel3)
      
      .addGap(19, 19, 19)
      
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      
      .addComponent(jLabel4)
      
      .addComponent(txtLogin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      
      .addGap(18, 18, 18)
      
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      
      .addComponent(jLabel5)
      
      .addComponent(txtSenha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
      
      );
      
      javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
      
      jPanel2.setLayout(jPanel2Layout);
      
      jPanel2Layout.setHorizontalGroup(
      
      jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(jPanel2Layout.createSequentialGroup()
      
      .addContainerGap()
      
      .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(jPanel2Layout.createSequentialGroup()
      
      .addGap(10, 10, 10)
      
      .addComponent(jLabel8))
      
      .addComponent(jLabel1))
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
      
      .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      
      .addContainerGap(20, Short.MAX_VALUE))
      
      );
      
      jPanel2Layout.setVerticalGroup(
      
      jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
      
      .addContainerGap(13, Short.MAX_VALUE)
      
      .addComponent(jLabel1)
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      
      .addComponent(jLabel8)
      
      .addGap(25, 25, 25))
      
      .addGroup(jPanel2Layout.createSequentialGroup()
      
      .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      
      .addContainerGap(13, Short.MAX_VALUE))
      
      );
      
      javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
      
      getContentPane().setLayout(layout);
      
      layout.setHorizontalGroup(
      
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
      
      .addContainerGap(131, Short.MAX_VALUE)
      
      .addComponent(btConfirmar)
      
      .addGap(80, 80, 80)
      
      .addComponent(btCancelar)
      
      .addGap(67, 67, 67))
      
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
      
      .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE)
      
      .addComponent(jLabel6))
      
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
      
      .addContainerGap(175, Short.MAX_VALUE)
      
      .addComponent(jLabel2)
      
      .addGap(130, 130, 130))
      
      );
      
      layout.setVerticalGroup(
      
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(layout.createSequentialGroup()
      
      .addGap(17, 17, 17)
      
      .addComponent(jLabel2)
      
      .addGap(18, 18, 18)
      
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(layout.createSequentialGroup()
      
      .addGap(72, 72, 72)
      
      .addComponent(jLabel6))
      
      .addGroup(layout.createSequentialGroup()
      
      .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addComponent(btCancelar)
      
      .addComponent(btConfirmar))))
      
      .addContainerGap(18, Short.MAX_VALUE))
      
      );
      
      java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
      
      setBounds((screenSize.width-440)/2, (screenSize.height-263)/2, 440, 263);
      
      }//
      

    private void txtLoginActionPerformed(java.awt.event.ActionEvent evt) {

    }

    private void btConfirmarActionPerformed(java.awt.event.ActionEvent evt) {
    
    query = entityManager.createNamedQuery(Funcionario.verificaLogin);
    
    query.setParameter(loginFuncionario, txtLogin.getText());
    
    query.setParameter(senhaFuncionario, EncriptaSenha.encripta(txtSenha.getText()));
    
    List data = query.getResultList();
    
    if (data.size() > 0) {
    
         String args[] = new String[1];
         args[0] = data.get(0).getCodFuncionario().toString();
         MenuInicial.main(args);
         dispose();
        
     } else {
    
        
         JOptionPane.showMessageDialog(null, "Usuário/Senha incorretos");
         dispose();
     }
    

    }

private void btCancelarActionPerformed(java.awt.event.ActionEvent evt) {

dispose();

}
private void btConfirmarKeyPressed(java.awt.event.KeyEvent evt) {

this.getRootPane().setDefaultButton(btConfirmar);

}

private void formKeyPressed(java.awt.event.KeyEvent evt) {

}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new LoginView().setVisible(true);
            
        }
    });
}

// Variables declaration - do not modify                     
private javax.swing.JButton btCancelar;
private javax.swing.JButton btConfirmar;
private javax.persistence.EntityManager entityManager;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel8;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private java.util.List list;
private javax.persistence.Query query;
private javax.swing.JTextField txtLogin;
private javax.swing.JPasswordField txtSenha;
// End of variables declaration

}

Spammer

Assim o seu codigo fica mais visivel Marcelo, ao adicionares um comentario vem algo escrito code em cima clicas uma vez para marcar inicio do codigo e a segundaz para marcar o fim

package br.com.lokfilmes.view;

import br.com.lokfilmes.bean.Funcionario;
import br.com.lokfilmes.util.EncriptaSenha;
import java.beans.Beans;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author Márcio
 */
public class LoginView extends javax.swing.JFrame {
        /** Creates new form LoginView */
    public LoginView() {
        initComponents();

         if (!Beans.isDesignTime()) {
            entityManager.getTransaction().begin();
        }

    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        entityManager = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory("lokfilmesPU").createEntityManager();
        query = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery("SELECT f FROM Funcionario f");
        list = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : query.getResultList();
        jLabel2 = new javax.swing.JLabel();
        btCancelar = new javax.swing.JButton();
        btConfirmar = new javax.swing.JButton();
        jLabel6 = new javax.swing.JLabel();
        jPanel2 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jPanel1 = new javax.swing.JPanel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        txtLogin = new javax.swing.JTextField();
        txtSenha = new javax.swing.JPasswordField();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Login");
        addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                formKeyPressed(evt);
            }
        });

        jLabel2.setFont(new java.awt.Font("Tahoma", 1, 14));
        jLabel2.setText("Acesso ao Sistema");

        btCancelar.setText("Cancelar");
        btCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btCancelarActionPerformed(evt);
            }
        });

        btConfirmar.setText("Confirmar");
        btConfirmar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btConfirmarActionPerformed(evt);
            }
        });
        btConfirmar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                btConfirmarKeyPressed(evt);
            }
        });

        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/lokfilmes/imagens/1319139924_preferences-desktop-cryptography.png"))); // NOI18N

        jLabel8.setFont(new java.awt.Font("Bernard MT Condensed", 0, 18));
        jLabel8.setForeground(new java.awt.Color(255, 0, 0));
        jLabel8.setText("LOGIN");

        jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));

        jLabel3.setText("Entre com os dados");

        jLabel4.setText("Login");

        jLabel5.setText("Senha");

        txtLogin.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtLoginActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(21, 21, 21)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(jLabel4)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(txtLogin, javax.swing.GroupLayout.PREFERRED_SIZE, 215, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(jLabel5)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(txtSenha))))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(98, 98, 98)
                        .addComponent(jLabel3)))
                .addContainerGap(25, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel3)
                .addGap(19, 19, 19)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(txtLogin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel5)
                    .addComponent(txtSenha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(jLabel8))
                    .addComponent(jLabel1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(20, Short.MAX_VALUE))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addContainerGap(13, Short.MAX_VALUE)
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel8)
                .addGap(25, 25, 25))
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(13, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(131, Short.MAX_VALUE)
                .addComponent(btConfirmar)
                .addGap(80, 80, 80)
                .addComponent(btCancelar)
                .addGap(67, 67, 67))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE)
                .addComponent(jLabel6))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(175, Short.MAX_VALUE)
                .addComponent(jLabel2)
                .addGap(130, 130, 130))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(17, 17, 17)
                .addComponent(jLabel2)
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(72, 72, 72)
                        .addComponent(jLabel6))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(btCancelar)
                            .addComponent(btConfirmar))))
                .addContainerGap(18, Short.MAX_VALUE))
        );

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-440)/2, (screenSize.height-263)/2, 440, 263);
    }// </editor-fold>                        

    private void txtLoginActionPerformed(java.awt.event.ActionEvent evt) {                                         
        
    }                                        

    private void btConfirmarActionPerformed(java.awt.event.ActionEvent evt) {                                            
      query = entityManager.createNamedQuery("Funcionario.verificaLogin");
        query.setParameter("loginFuncionario", txtLogin.getText());
        query.setParameter("senhaFuncionario", EncriptaSenha.encripta(txtSenha.getText()));
        List<Funcionario> data = query.getResultList();
  
        if (data.size() > 0) {
     
            String args[] = new String[1];
            args[0] = data.get(0).getCodFuncionario().toString();
            MenuInicial.main(args);
            dispose();
           
        } else {

           
            JOptionPane.showMessageDialog(null, "Usuário/Senha incorretos");
            dispose();
        }
    }                                           

private void btCancelarActionPerformed(java.awt.event.ActionEvent evt) {                                           
dispose();
}                                          

private void btConfirmarKeyPressed(java.awt.event.KeyEvent evt) {                                       
this.getRootPane().setDefaultButton(btConfirmar);  
}                                      

private void formKeyPressed(java.awt.event.KeyEvent evt) {                                
	
}                               

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new LoginView().setVisible(true);
                
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton btCancelar;
    private javax.swing.JButton btConfirmar;
    private javax.persistence.EntityManager entityManager;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private java.util.List list;
    private javax.persistence.Query query;
    private javax.swing.JTextField txtLogin;
    private javax.swing.JPasswordField txtSenha;
    // End of variables declaration                   

}
Lucas_Abbatepaolo

Basta vc criar uma variavel int como variavel de instancia da sua classe e cada vez que o login falhar vc incrementa um nela (i++) e depois de incrementar verifica se ela é == 3. Se for vc da um System.exit(0) ou implementa a liogica que vc quer q aconteça…

M

ta ai o codigo mais organizado, valeu…

package br.com.lokfilmes.view;

import br.com.lokfilmes.bean.Funcionario;

import br.com.lokfilmes.util.EncriptaSenha;

import java.beans.Beans;

import java.util.List;

import javax.swing.JOptionPane;
public class LoginView extends javax.swing.JFrame {

public LoginView() {

initComponents();
if (!Beans.isDesignTime()) {
        entityManager.getTransaction().begin();
    }

}
private void btConfirmarActionPerformed(java.awt.event.ActionEvent evt) {

query = entityManager.createNamedQuery(Funcionario.verificaLogin);

query.setParameter(loginFuncionario, txtLogin.getText());

query.setParameter(senhaFuncionario, EncriptaSenha.encripta(txtSenha.getText()));

List data = query.getResultList();
if (data.size() > 0) {
 
        String args[] = new String[1];
        args[0] = data.get(0).getCodFuncionario().toString();
        MenuInicial.main(args);
        dispose();
       
    } else {

       
        JOptionPane.showMessageDialog(null, "Usuário/Senha incorretos");
        dispose();
    }
}
private void btCancelarActionPerformed(java.awt.event.ActionEvent evt) {

dispose();

}
private void btConfirmarKeyPressed(java.awt.event.KeyEvent evt) {

this.getRootPane().setDefaultButton(btConfirmar);

}
public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new LoginView().setVisible(true);
}
    });
}
private javax.swing.JButton btCancelar;

private javax.swing.JButton btConfirmar;

private javax.persistence.EntityManager entityManager;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JLabel jLabel4;

private javax.swing.JLabel jLabel5;

private javax.swing.JLabel jLabel6;

private javax.swing.JLabel jLabel8;

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel2;

private java.util.List list;

private javax.persistence.Query query;

private javax.swing.JTextField txtLogin;

private javax.swing.JPasswordField txtSenha;

}
Spammer

Nao cheguei a ler bem o seu codigo Marcelo mas adicionando algi mais na idea do Lucas, Listener que faz a validacao do utilzador poderias adicionar um else que daria alguma mensagem de erro e ai fizesse os counts

Lucas_Abbatepaolo

poste o codigo entre as tags (é um botãozinho que tem qnd vc esta postando, ele fica em uma barrinha aqui em cima, vc clica nele uma vez, cola o codigo e depois clicla nele dinovo…) senão não da nem vontade de ler seu codigo…

M

mas, eu queria saber onde eu colocar o if, porque ja existe, eu vou ter que apagar o que ja tem, ou vou inserir outro, ja tentei fazer isso mas não acontece nada…

Spammer

marcioaraujo:
ta ai o codigo mais organizado, valeu…

package br.com.lokfilmes.view;

import br.com.lokfilmes.bean.Funcionario;

import br.com.lokfilmes.util.EncriptaSenha;

import java.beans.Beans;

import java.util.List;

import javax.swing.JOptionPane;
public class LoginView extends javax.swing.JFrame {

public LoginView() {

initComponents();
if (!Beans.isDesignTime()) {
        entityManager.getTransaction().begin();
    }

}
private void btConfirmarActionPerformed(java.awt.event.ActionEvent evt) {

query = entityManager.createNamedQuery(Funcionario.verificaLogin);

query.setParameter(loginFuncionario, txtLogin.getText());

query.setParameter(senhaFuncionario, EncriptaSenha.encripta(txtSenha.getText()));

List data = query.getResultList();
if (data.size() > 0) {
 
        String args[] = new String[1];
        args[0] = data.get(0).getCodFuncionario().toString();
        MenuInicial.main(args);
        dispose();
       
    } else {

       
        JOptionPane.showMessageDialog(null, "Usuário/Senha incorretos");
        dispose();
    }
}
private void btCancelarActionPerformed(java.awt.event.ActionEvent evt) {

dispose();

}
private void btConfirmarKeyPressed(java.awt.event.KeyEvent evt) {

this.getRootPane().setDefaultButton(btConfirmar);

}
public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new LoginView().setVisible(true);
}
    });
}
private javax.swing.JButton btCancelar;

private javax.swing.JButton btConfirmar;

private javax.persistence.EntityManager entityManager;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JLabel jLabel4;

private javax.swing.JLabel jLabel5;

private javax.swing.JLabel jLabel6;

private javax.swing.JLabel jLabel8;

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel2;

private java.util.List list;

private javax.persistence.Query query;

private javax.swing.JTextField txtLogin;

private javax.swing.JPasswordField txtSenha;

}</blockquote>

o seu codigo continua na mesma existe um link de ajuda que diz como deves postar os topicos acho que seria melhor le-los

L

Cara da um lida aqui

http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

abrxx

M

É porque eu sou novo nesse site ai eu to meio por fora como postar as coisas…

Spammer

lokit"s:
Cara da um lida aqui

http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

abrxx

obrigado, estava procurando o link pra passar pa ele e nao encontrava…

M

valeu ai ja estou lendo…

L

Cara seria mais ou menos isso

public void OK() {     
             int tentativa=0;   
            if (jtxtUsuario.getText().equals("ADM")) {     
                if (jtxtSenha.getText().equals("123456")) {     
                    Principal principal = new Principal();     
                    principal.setExtendedState(MAXIMIZED_BOTH);     
                    principal.setVisible(true);     
                    dispose();     
                } else {     
                    JOptionPane.showMessageDialog(null, "Senha Inválida!", "Atenção", JOptionPane.ERROR_MESSAGE);     
                    jtxtSenha.setText("");     
                    jbtnOK.setEnabled(false);     
                    jtxtSenha.requestFocus();     
                    tentativa++;   
                }     
            }   
               
             if(tentativa == 3){   
                JOptionPane.showMessageDialog(null, "Usuário Inexistente ou Desativado!" + "\n" + "Contacte o Administrador do Sistema.", "Atenção", JOptionPane.ERROR_MESSAGE);     
                jtxtSenha.setText("");     
                jbtnOK.setEnabled(false);     
                jtxtUsuario.setText("");     
                jtxtSenha.setEditable(false);     
                jtxtUsuario.requestFocus();     
             }   
             }
M
package br.com.lokfilmes.view;

import br.com.lokfilmes.bean.Funcionario;
import br.com.lokfilmes.util.EncriptaSenha;
import java.beans.Beans;
import java.util.List;
import javax.swing.JOptionPane;


public class LoginView extends javax.swing.JFrame {
public LoginView() {
        initComponents();

         if (!Beans.isDesignTime()) {
            entityManager.getTransaction().begin();
        }

    }


private void btConfirmarActionPerformed(java.awt.event.ActionEvent evt) {                                            
      query = entityManager.createNamedQuery("Funcionario.verificaLogin");
        query.setParameter("loginFuncionario", txtLogin.getText());
        query.setParameter("senhaFuncionario", EncriptaSenha.encripta(txtSenha.getText()));
        List<Funcionario> data = query.getResultList();
  
        if (data.size() > 0) {
     
            String args[] = new String[1];
            args[0] = data.get(0).getCodFuncionario().toString();
            MenuInicial.main(args);
            dispose();
           
        } else {

           
            JOptionPane.showMessageDialog(null, "Usuário/Senha incorretos");
            dispose();
        }
    }                                           

private void btCancelarActionPerformed(java.awt.event.ActionEvent evt) {                                           
dispose();
}                                          

private void btConfirmarKeyPressed(java.awt.event.KeyEvent evt) {                                       
this.getRootPane().setDefaultButton(btConfirmar);  
}                     

public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new LoginView().setVisible(true);
                
            }
        });
    }

 private javax.swing.JButton btCancelar;
    private javax.swing.JButton btConfirmar;
    private javax.persistence.EntityManager entityManager;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private java.util.List list;
    private javax.persistence.Query query;
    private javax.swing.JTextField txtLogin;
    private javax.swing.JPasswordField txtSenha;
}
M

será que ta certo agora?

M

valeu lokit"s pelo link…

L

opa…

Ta sim mulekão !!!

L

ajustando la em cima pode fazer assim tbm

public void ExemploContador() {   
        int conTentativa = 0;   
        if (conTentativa < 4) {   
            // aqui tu coloca o que tu vai ser mostrado

 JOptionPane.showMessageDialog(null, "Acesso ao sistema liberado e registrado para!",   
                                                  "Bem Vindo", JOptionPane.PLAIN_MESSAGE);   
                } else {   
                    conTentativa++;   
                    JOptionPane.showMessageDialog(null, "Senha Inválida!" +   
                                                  "\n" + "Essa é a sua " + conTentativa + "ª tentavia.",   
                                                  "Atenção", JOptionPane.ERROR_MESSAGE);   

    }

deu pra entender o que esta sendo feito

conTentativa++;
M

lokit"s, mas eu queria saber se é so isso e não precissa mudar o codigo ja existente.

Criado 17 de novembro de 2011
Ultima resposta 18 de nov. de 2011
Respostas 22
Participantes 5