Boa noite colegas, é o seguinte, estou trabalhando em um projeto, e estou na seguinte situação, tenho uma tela de cadastro com JFormattedTextField, que recebe os dados da data de nascimento e outro que recebe o cpf, contudo, o usuario não é obrigado a informar estes dados, logo, se ele informar preciso que seja chamado os metodos que validam o cpf e a data de nascimento.
eu usei o metodo focusLost(), para ele dar o focu quando o usuario passar pelo campo e digitar o cpf errado, funciona correto, o problema, é que quando ele não digita nada no campo ele pega os valores da mascara q estou usando.
public void focusLost(FocusEvent e) {
if(e.getSource()==txtCpf){
ValidacaoDeDados val;
cpf=txtCpf.getText().toString();
int digito1;
int digito2;
String cpfSemDigito;
String cpfSemPonto;
digito1=Integer.parseInt(String.valueOf(cpf.charAt(12)));
digito2=Integer.parseInt(String.valueOf(cpf.charAt(13)));
cpfSemDigito=cpf.substring(0, 11);
cpfSemPonto=cpfSemDigito.replace(".", "");
val = new ValidacaoDeDados(cpfSemPonto,digito1,digito2);
if(val.calcDigVerificador()==false){
JOptionPane.showMessageDialog(null,"Cpf incorreto! Digite Novamente!");
}
}
}
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "_"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:497)
at br.com.vetor.apresentacao.TelaCadastroAluno.focusLost(TelaCadastroAluno.java:619)
at java.awt.AWTEventMulticaster.focusLost(AWTEventMulticaster.java:172)
at java.awt.Component.processFocusEvent(Component.java:5409)
at javax.swing.JFormattedTextField.processFocusEvent(JFormattedTextField.java:591)
at java.awt.Component.processEvent(Component.java:5273)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3984)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3819)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1826)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:858)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:539)
at java.awt.Component.dispatchEventImpl(Component.java:3857)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3819)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
CONSTRUÍDO COM SUCESSO (tempo total: 24 segundos)
alguem ai sabe como posso corrigir isto???