CPF & CNPJ com BrazilUtils

4 respostas
di0

Salve galera,

estou criando uma interface com o usuário onde o usuário insere o CPF ou o CNPJ em um jTextField e o programa deve validar de acordo com o jRadioButton selecionado. Após o usuário digitar e o jTextField perder o foco eu quero que o que ele digitou seja formatado como um CPF ou CNPJ.

Este é o código somente para alterar o jTextField sem validar se o que foi digitado é realmente um número valido.

private void cpfCnpjTextFieldFocusLost(java.awt.event.FocusEvent evt) { String aux = new String(cpfCnpjTextField.getText()); CpfCnpj cnpj = new CpfCnpj(); cnpj.setCpfCnpj(aux); cpfCnpjTextField.setText(cnpj.toString()); }

mas o que me acontece é que todo valor que eu coloco acima de 11 digitos ele me é retornado com o formato de cpf. se eu digito por exemplo uma quantidade que seria para um cnpj ele continua me retornando como se fosse um cpf.
por exemplo:
entrada [telefone removido]
saída: [CPF removido]

entrada: 12345678901234
saída: 123.456.789-01234

alguem pode me explicar melhor como posso proceder com isto?

4 Respostas

rmendes08

Cara, você tem que colocar o código da classe que faz a formatação para entendermos o que tá acontecendo. Mas logo de cara, eu vi que na interface não tem nenhum argumento que esclareça se você quer a formatação de cpf ou de cnpj.

di0

Essa classe quem faz a formatação é a do BrazilUtils. Eu tentei simplificar o máximo possível minha duvida e acabei não sendo entendido. mas td bem, procurando mais um pouco aqui no forum encontrei este tópico onde no post do wendel2s eu pude compreender melhor como posso formatar uma String. O código que eu postei não esclarece se eu quero CPF ou CNPJ. mas segue abaixo como ficou meu código já fazendo a validação do documento:

private void cpfCnpjTextFieldFocusLost(java.awt.event.FocusEvent evt) {                                           
        String mascara;
        String aux = new String(cpfCnpjTextField.getText());
        CpfCnpj cpfCnpj = new CpfCnpj();
        cpfCnpj.setCpfCnpj(aux);

        if (cpfRadioButton.isSelected()) {
            mascara = new String(CpfCnpj.CPF_MASK);
            if (!cpfCnpj.isCpf() || !cpfCnpj.isValid()) {
                JOptionPane.showMessageDialog(null, "CPF incorreto", "ERRO", JOptionPane.ERROR_MESSAGE);
            }
        } else {
            mascara = new String(CpfCnpj.CNPJ_MASK);
            if (!cpfCnpj.isCnpj() || !cpfCnpj.isValid()) {
                JOptionPane.showMessageDialog(null, "CNPJ incorreto", "ERRO", JOptionPane.ERROR_MESSAGE);
            }
        }

        try {
            cpfCnpjTextField.setText(formatarString(aux, mascara)); //altera formatação
        } catch (ParseException e) {
            e.printStackTrace();
        }
}
R

Também estou usando a classe do BrazilUtils. Segui o mesmos passos di0 mas continuo com o mesmo problema.

entrada [telefone removido]
saída: [CPF removido]

entrada: 12345678901234
saída: 123.456.789-01234

R

Consegui o erro estava no Classe do BrazilUtils baixei a ultima versão corrigida.

Criado 25 de julho de 2009
Ultima resposta 21 de mar. de 2010
Respostas 4
Participantes 3