//Busca dados Cliente pelo CPF/CNPJ
public void buscaDadosClienteR(String doc)
{
connect.Connection();
connect.executaSQL("SELECT * FROM clientes WHERE cpf='"+ doc +"' OR cnpj='"+ doc +"'");
try
{
//Resultado
connect.rs.first();
//Condição para verificação de CPF ou CNPJ
if(jFormattedTextField_doc_remetente.getText().length() == 11)
{
MaskFormatter mascaraR = new MaskFormatter("###.###.###-##");
mascaraR.install(jFormattedTextField_doc_remetente);
jFormattedTextField_doc_remetente.setText(connect.rs.getString("cpf"));
}
else if(jFormattedTextField_doc_remetente.getText().length() == 14)
{
MaskFormatter mascaraR = new MaskFormatter("##.###.###/####-##");
mascaraR.install(jFormattedTextField_doc_remetente);
jFormattedTextField_doc_remetente.setText(connect.rs.getString("cnpj"));
}
else
{
JOptionPane.showMessageDialog(null, "CPF / CNPJ invalido!!");
}
//Dados
jTextField_nome_remetente.setText(connect.rs.getString("nome_completo"));
jFormattedTextField_tel_remetente.setText(connect.rs.getString("telefone"));
jLabel_localidadeRemetente.setText(connect.rs.getString("localidade"));
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, "Erro ao Buscar Cliente");
jTextField_nome_remetente.setText("");
jFormattedTextField_tel_remetente.setText("");
jFormattedTextField_doc_remetente.setText("");
}
connect.disconnect();
}
Quando coloco um cpf que não é encontrado no banco ele da exceção mais seta a mascara e não consigo digitar por exemplo um cnpj porque já esta com a mascara do CPF (###.###.###-##)
Usa um textfield normal.
Aí vc faz o tratamento:
String campo = seucampo.getText();
if (campo.length() == 11) {
String cpf = String.valueOf(
"" + campo.charAt(0) + campo.charAt(1) + campo.charAt(2) + "." +
campo.charAt(3) + campo.charAt(4) + campo.charAt(5) + "." +
campo.charAt(6) + campo.charAt(7) + "-" + campo.charAt(8) + "-" +
campo.charAt(9) + "-" + campo.charAt(10));
seucampo.setText(cpf);
} else if (campo.length() == 14) {
String cnpj = String.valueOf(
"" + campo.charAt(0) + campo.charAt(1) + "." +
campo.charAt(2) + campo.charAt(3) + campo.charAt(4) + "." +
campo.charAt(5) + campo.charAt(6) + campo.charAt(7) + "/" +
campo.charAt(8) + campo.charAt(9) + campo.charAt(10) + campo.charAt(11) + "-"
campo.charAt(12) + campo.charAt(13));
seucampo.setText(cnpj);
}
Depois eh so vc fazer a verificao
se (cpf == dado_banco){
alguma coisa
} senao {
erro
}
1 curtida
ou so coloca:
jFormattedTextField1.setFocusLostBehavior(JFormattedTextField.PERSIST);
Por padrao ele vem COMMIT_OR_REVERSE
, se o usuario escreve e ta errado, ele apaga ou nao deixa continuar, o persist vai deixar vc colocar o q vc quiser no campo
1 curtida
Usando um exemplo que tenho aqui…
1 - Defino as variáveis
private MaskFormatter mascaraNula;
private MaskFormatter mascaraTelefoneFixo;
private MaskFormatter mascaraTelefoneCelular;
2 - Defino um método para construir as máscaras
private void definirMascaramento(){
try{
mascaraNula = new MaskFormatter(null);
mascaraTelefoneCelular = new MaskFormatter("(##) # ####-####");
mascaraTelefoneFixo = new MaskFormatter("(##) ####-####");
}catch(ParseException pex){
System.out.println("ERRO: " + pex.getMessage());
}
}
3 - Crio um método seletor de máscara
private void mascararCampo(int tipoMascaramento){
switch(tipoMascaramento){
case 0:
txmNumeroTelefone.setFormatterFactory(
new DefaultFormatterFactory(mascaraNula));
txmNumeroTelefone.setEditable(false);
break;
case 1:
txmNumeroTelefone.setValue(null);
txmNumeroTelefone.setEditable(true);
txmNumeroTelefone.setFormatterFactory(
new DefaultFormatterFactory(mascaraTelefoneCelular));
break;
case 2:
txmNumeroTelefone.setValue(null);
txmNumeroTelefone.setEditable(true);
txmNumeroTelefone.setFormatterFactory(
new DefaultFormatterFactory(mascaraTelefoneFixo));
}
}
4 - Chamo esse método seletor no evento (no caso de um JCombBox passando o index como parâmetro)
private void cbxTipoTelefoneItemStateChanged(java.awt.event.ItemEvent evt) {
mascararCampo(cbxTipoTelefone.getSelectedIndex());
}
Funcionou perfeitamente <3