Ola pessoa baum?Sou novo por aki e to com um problema , utilizando o metodo de validar cpf aki citado tentei utilzar no programa , pois bem eu tenho uma classe TElaUsuario onde aki eu faco o cadastro do usuario, e tenho um componete MeuCPFCNPJ, onde eu determino o campo cpf do tipo do meu componete, pois bem nao to conseguindo pegar oq foi digitado e jogar no meu componete onde ta o validador do cpf, e me retornar se esta certo ou errado, espero ter sido claro.
aki ta minha classe componente:
package MeuComponente;
import javax.swing.JOptionPane;
public class MeuCpfCnpj extends MeuJFormattedTextField implements MeuComponente {
public MeuCpfCnpj(boolean obrigatorio) {
super(obrigatorio);
mascaras = new String[]{"###.###.###-##"};
try {
mf.setMask(mascaras[0]);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Erro ao estabelecer a máscara para o tipo CPF/CNPJ");
}
mf.setValidCharacters("[telefone removido]");
mf.setPlaceholder("_");
mf.install(this);
int tamanho9 = getFontMetrics(getFont()).charWidth('9'); //tamanho do caracter 9 para o fonte corrente
int tamanhoW = getFontMetrics(getFont()).charWidth('W'); //tamanho do caracter W para o fonte corrente
setColumns((tamanho9 * 10) / tamanhoW); //ajusta o tamanho do campo para apenas dígitos numéricos (9 é o maior digito numérico e W o maior caracter)
}
public boolean eVazio() {
String texto = getText().replace('.', '\0').replace('-', '\0').trim();
if (texto.length() > 0)
return false;
return true;
}
public boolean validacaoCPF(String cpf) {
int d1, d2;
int digito1, digito2, resto;
int digitoCPF;
String nDigResult;
d1 = d2 = 0;
digito1 = digito2 = resto = 0;
for (int nCount = 1; nCount < cpf.length() -1; nCount++)
{
digitoCPF = Integer.valueOf (cpf.substring(nCount -1, nCount)).intValue();
//multiplique a ultima casa por 2 a seguinte por 3 a seguinte por 4 e assim por diante.
d1 = d1 + ( 11 - nCount ) * digitoCPF;
//para o segundo digito repita o procedimento incluindo o primeiro digito calculado no passo anterior.
d2 = d2 + ( 12 - nCount ) * digitoCPF;
};
//Primeiro resto da divisão por 11.
resto = (d1 % 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;
d2 += 2 * digito1;
//Segundo resto da divisão por 11.
resto = (d2 % 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);
}
}
aki minha classe TelaUsuario, onde vai ser digitado o cpf:
package Telas;
import MeuComponente.MeuCampoSenha;
import MeuComponente.MeuCodigo;
import MeuComponente.MeuComboBox;
import MeuComponente.MeuCpfCnpj;
import MeuComponente.MeuDescricao;
import java.awt.GridBagConstraints;
import javax.swing.JOptionPane;
import telas.TelaConsulta;
public class TelaUsuario extends TelaCadastro {
private MeuCodigo codigo = new MeuCodigo(10, false);
private MeuDescricao nome = new MeuDescricao(50, true);
[b]private MeuCpfCnpj cpf = new MeuCpfCnpj(true);[/b]
private MeuDescricao email = new MeuDescricao(30, false);
private MeuCampoSenha senha = new MeuCampoSenha(10,true);
private MeuCampoSenha confirmarsenha = new MeuCampoSenha(10,true);
private MeuComboBox tiponivel = new MeuComboBox(new String[] {" ","Administrador","Padrao"} );
private MeuComboBox ativo = new MeuComboBox(new String[] {" ","Ativo","Inativo"} );
public TelaUsuario() {
super("Cadastro de Usuario");
adicionaComponentes(1,1,1,1,GridBagConstraints.WEST,"Código", codigo);
adicionaComponentes(2,1,1,1,GridBagConstraints.WEST,"Nome", nome);
adicionaComponentes(3,1,1,1,GridBagConstraints.WEST,"CPF", cpf);
adicionaComponentes(4,1,1,1,GridBagConstraints.WEST,"Email", email);
adicionaComponentes(5,1,1,1,GridBagConstraints.WEST,"Senha", senha);
adicionaComponentes(6,1,1,1,GridBagConstraints.WEST,"Confirmar Senha", confirmarsenha);
adicionaComponentes(7,1,1,1,GridBagConstraints.WEST,"Tipo Conta", tiponivel);
adicionaComponentes(8,1,1,1,GridBagConstraints.WEST,"Status", ativo);
pack();
setVisible(true);
}
@Override
public void consultar() {
if (telaConsulta == null) {
telaConsulta = new TelaConsulta(“Consulta de Usuários”, this, new String[] {“Código”, “Nome”, “Estado”}, “SELECT CIDADE.CODIGO, CIDADE.NOME, ESTADO.SIGLA FROM CIDADE, ESTADO WHERE CIDADE.CODESTADO = ESTADO.CODIGO”);
TelaPrincipal.desk.add(telaConsulta);
}
TelaPrincipal.desk.moveToFront(telaConsulta);
telaConsulta.requestFocus();
}
<a class="mention" href="/u/override">@Override</a>
public void cancelar() {
habilitaBotoes(true);
nome.setText("");
cpf.setText("");
email.setText("");
senha.setText("");
confirmarsenha.setText("");
tiponivel.setSelectedItem(null);
ativo.setSelectedItem(null);
jlMensagem.setText("");
statusTela = INDEFINIDO;
}
<a class="mention" href="/u/override">@Override</a>
public boolean validaDados() {
super.validaDados();
String key1 = new String(senha.getPassword());
String key2 = new String(confirmarsenha.getPassword());
String cpfs = new String(cpf.getText()); aki eu criou uma variavel pra pegar o cpf
if (key1.equals(key2)) {
senha.setBackground(Util.Dados.COR_OBRIGATORIO);
confirmarsenha.setBackground(Util.Dados.COR_OBRIGATORIO);
return true;
} else {
senha.setBackground(Util.Dados.COR_INVALIDO);
confirmarsenha.setBackground(Util.Dados.COR_INVALIDO);
JOptionPane.showMessageDialog(null, “As senhas não coincidem!\nVerifique campos em vermelho.”);
return false;
}
//validacaoCPF(cpfs); aki tentei chamar o metodo validar la do meucomponete MEUCPFCNPJ
}
}
espero q possam me ajudar