estou fazendo uma validação de cnpj. então uso a opção FocusLost
O problema apareceu quando o usuário coloca um valor errado. Coloquei um JOptionPane para avisar o usuário que o valor digitado está incorreto, então utilizo um requestFocus() mas não consigo passar o focus para o JTextField que teve problema assim que dou “OK” no JOptionPane…
O que eu fiz funciona, mas muuiito mal!
Ao invez do JOptionPane aparecer uma única vez ele aparece 4!
agora com este código que passou eu deveria usar outra propriedade?
renanedpedroso
O que você quer dizer com outra propriedade?
No meu código também estou usando o focusLost.
william_sistema
me espressei mal…
me refiro a esta linha
campoTexto.addFocusListener(listener);
ele deve ser usada em baixo do focusLost ou tepra uma propriedade para colocar ela.
renanedpedroso
Para fazer o que você quer, eu imagino que você terá que criar uma classe que herde seu campo de texto e assim você pode tratar o listener como uma ‘propriedade’.
usei parte do seu código só que agora ele não mostra o JOptionPane
teria alguma coisa errada no código?
renanedpedroso
Troque as linhas:
((Component)evt.getSource()).removeFocusListener((FocusListener)this);JOptionPane.showMessageDialog(null,"CNPJ incorreto, Por favor, verifique.","ERRO",JOptionPane.ERROR_MESSAGE);((Component)evt.getSource()).addFocusListener((FocusListener)this);
para:
((Component)evt.getSource()).removeFocusListener((FocusListener)evt.getSource());JOptionPane.showMessageDialog(null,"CNPJ incorreto, Por favor, verifique.","ERRO",JOptionPane.ERROR_MESSAGE);((Component)evt.getSource()).addFocusListener((FocusListener)evt.getSource());
Espero ter ajudado.
Abraço!
william_sistema
meu caro agradeço muito a sua atenção mais ainda não consegui fazer funcionar como quero.
agora nã aparece a menssagem.
para facilitar, preciso que ao sair do compo o cnpj seja validade, caso esteja com erro ele me da uma menssagem e volta novamente para o campo.
mesmo se não usar focuslost, mais se funcionar como preciso já esta otimo tem outra maneira de fazer isto?