Chamar um evento dentro de outro evento

5 respostas
adsadilson

Senha invalida tente novamente

Boa tarde galera tudo joia com vcs? É seguinte estou precisando de uma ajudinha de vcs tenho um código dentro de um KeyPressed eu queria executa esse mesmo código em outro evento tipo assim ao pressionar o enter ele faz uma verificação mas se o usuário não utilizar o enter para pular o campo então não é feito a verificação então queria por esse mesmo código no evento FocusLost tbm sem ter a necessidade de digitar todo o código de novo apenas chamando o evento keyPressed tem como galera, vou posto os código aqui.
Deste já agradeço a todos pela colaboração

private void txtpswdAtualKeyPressed(java.awt.event.KeyEvent evt) { int key = evt.getKeyCode(); if (key == KeyEvent.VK_ENTER) { if (consultarLogin(Ult.pronto.criptografia(txtpswdAtual.getText()))) { JOptionPane.showMessageDialog(this, "metodo alterar senha!"); } else { JOptionPane.showMessageDialog(this, "Senha atual invalida!"); txtpswdNovo.requestFocus(); txtpswdNovo.selectAll(); } } }

5 Respostas

gaulix

Ao meu ver voce nao consegue chamar esse método apartir do listner de lostfocus, pelo fato de lostfocus não ter keyEvent.

Podes criar um método que contem da linha 4 até a 10, e chamar esse método pelo evento de keyPressed e lostFocus

Tipo isso

private void verificacao() {
        if (consultarLogin(Ult.pronto.criptografia(txtpswdAtual.getText()))) {
            JOptionPane.showMessageDialog(this, "metodo alterar senha!");
        } else {
            JOptionPane.showMessageDialog(this, "Senha atual invalida!");
            txtpswdNovo.requestFocus();
            txtpswdNovo.selectAll();
        }
    }

jTextField1.addKeyListener(new KeyListener() {
            @Override
            public void keyTyped(KeyEvent e) {
            }

            @Override
            public void keyPressed(KeyEvent evt) {
                int key = evt.getKeyCode();
                if (key == KeyEvent.VK_ENTER) {
                    verificacao();
                }
            }

            @Override
            public void keyReleased(KeyEvent e) {
            }
        });

jTextField1.addFocusListener(new FocusListener() {

            @Override
            public void focusGained(FocusEvent e) {
            }

            @Override
            public void focusLost(FocusEvent e) {
                    verificacao();
            }
        });
adsadilson

gaulix

entendi camarada, vou fazer desse jeito ai valeu pela dica

adsadilson

Gaulix, estou com um probleminha tbm nessa função aqui vou lhe passa pra vc ver o q pode esta errado, tenho esse metodo abaixo para verificar o login eu quero usar esse mesmo metodo em outra JDialog mas esta dando um erro

public boolean consultarLogin(String senha, String tela) { boolean res = false; try { List<modelo.Usuario> result = new UsuarioController().VerificarSenha(0, senha, "login"); for (int i = 0; i < result.size(); i++) { id = result.get(i).getId(); nome = result.get(i).getNome(); String senhaBanco = result.get(i).getSenha(); senha = Ult.pronto.criptografia(txtpswd.getText()); nivel = result.get(i).getNivel(); if (senhaBanco.equals(senha)) { res = true; } else { res = false; } } } catch (SQLException ex) { JOptionPane.showMessageDialog(this, "Usuário não localizado?\n"+ex); } return res; }
estou chamando ele aqui

private void txtpswdAtualKeyPressed(java.awt.event.KeyEvent evt) { int key = evt.getKeyCode(); if (key == KeyEvent.VK_ENTER) { if (login.consultarLogin(Ult.pronto.criptografia(txtpswd.getText()), "login")) { JOptionPane.showMessageDialog(this, "ok!"); }else{ JOptionPane.showMessageDialog(this, "errado!"); } }
mas esta dando esse erro aqui

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at view.JDialogSenha.txtpswdAtualKeyPressed(JDialogSenha.java:237) at view.JDialogSenha.access$200(JDialogSenha.java:14) at view.JDialogSenha$3.keyPressed(JDialogSenha.java:71) at java.awt.Component.processKeyEvent(Component.java:6463) at javax.swing.JComponent.processKeyEvent(JComponent.java:2829) at java.awt.Component.processEvent(Component.java:6282) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1893) at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:752) at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1017) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:889) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:717)

gaulix

tem algum objeto que está null, pode ser o login ou o ult, o melhor jeito de arrumar isso é debugando o código, para a execuçao do seu código na linha que está dando o erro, no caso a 237 da classe JDialogSenha e veja qual objeto está null

adsadilson

agora estou de saida mais vou dar uma olhada em casa valeu, qualquer coisa eu te falo blz, tem uma boa noite ate mais

Criado 6 de dezembro de 2012
Ultima resposta 6 de dez. de 2012
Respostas 5
Participantes 2