Chamar um método dentro de um campo com mascara

2 respostas
Giliard_Lourenco1

Olá galera, beleza?
Então será que alguem poderia e ajudar?
Eu estou desevolvendo um sistema no Netbeans 6.1
e criei uma classe utilitário para colocar os métodos que vou usar sempre.
Um deles é esse:

package br.com.utilitarios.erp;

import javax.swing.JOptionPane;

public class Utilitarios
{

/*Método que calcula e verifica a validação do CNPJ
 * @author Giliartd Lourenço
 * 
 */ 

static public boolean validaCPF(String cpf )
{ // formato XXX.XXX.XXX-XX 
    if (! cpf.substring(0,1).equals(""))
    {   
        try{   
            boolean validado = true;   
            int dig1;
            int dig2;   
            int digito1;
            int digito2;
            int resto;
            int digitoCPF;
            String  nDigResult;   
             
            dig1 = dig2 = 0;   
            digito1 = digito2 = resto = 0;   
               
            for (int contador = 1; contador < cpf.length() -1; contador++) 
            {   
                digitoCPF = Integer.valueOf(cpf.substring(contador -1, contador)).intValue();   
                   
                //multiplique a ultima casa por 2 a seguinte por 3 a seguinte por 4 e assim por diante.   
                dig1 = dig1 + ( 11 - contador ) * digitoCPF;   
                   
                //para o segundo digito repita o procedimento incluindo o primeiro digito calculado no passo anterior.   
                dig2 = dig2 + ( 12 - contador ) * digitoCPF;   
            }   
               
            //Primeiro resto da divisão por 11.   
            resto = (dig1 % 11);   
               
            //Se o resultado for 0 ou 1 o digito é 0 caso contrário o digito é 11 menos o resultado anterior.   
            if (resto < 2)   
                digito1 = 0;   
            else  
                digito1 = 11 - resto;   
               
            dig2 += 2 * digito1;   
               
            //Segundo resto da divisão por 11.   
            resto = (dig2 % 11);   
               
            //Se o resultado for 0 ou 1 o digito é 0 caso contrário o digito é 11 menos o resultado anterior.   
            if (resto < 2)   
                digito2 = 0;   
            else  
                digito2 = 11 - resto;   
               
            //Digito verificador do CPF que está sendo validado.   
            String nDigVerific = cpf.substring(cpf.length()-2, cpf.length());   
               
            //Concatenando o primeiro resto com o segundo.   
            nDigResult = String.valueOf(digito1) + String.valueOf(digito2);   
               
            //comparar o digito verificador do cpf com o primeiro resto + o segundo resto.   
            return nDigVerific.equals(nDigResult);   
        }
        catch (Exception e)
        {   
            JOptionPane.showMessageDialog(null,   
                    "Este CPF não é válido." +
                    "\n Tenha certeza.de que digitou os valores " +
                    "corretamente, Ok?", "Sistema ERP - TCC Unipaulistava - Erro",   
                    JOptionPane.ERROR_MESSAGE);   
            return false;   
        }   
    }
    else return false;   
}

}

Agora, como eu fasso pra usar ele dentro do desse campo que eu criei e ja coloquei mascara:

/*Formata CPF da areaCPF.

*/

try

{

formataCPF = new MaskFormatter("###.###.###-##");
}
    catch(Exception erro)
    {
        JOptionPane.showMessageDialog(null, erro);
    }        
    areaCPF = new JFormattedTextField(formataCPF);

Quem poder, por favor me da uma ajuda ai beleza?
valeu.

2 Respostas

lmprates

Olá,

Em primeiro, tenta postar seus código dentro da tag [ code ] da próxima vez, fica mais fácil de ler.

Quanto à sua dúvida, porque você não faz a validação no lostFocus do campo a ser validado?

Se não quiser se preocupar com os eventos, então terá de criar a sua própria classe de máscara, e fazer a validação dentro dela.

falow

K

Olá sou nova por aqui e tbm sou iniciante em java e estou com um problema
para chamar o método de validação de CPF que eu tenho que está inserido dentro do meu
código mesmo.

Eu tentei chama-lo pelo evento focusLost do meu JTextField mas não consegui ele não chama esse método
Se alguém puder me dizer como usar este método eu agradeceria.

Valeu!!!

Criado 14 de julho de 2008
Ultima resposta 26 de nov. de 2008
Respostas 2
Participantes 3