JFormateField mascara em condições diferentes

Ai pessoal eu instancie um Jformattedtextfield com um Mask, blz setei uma mascara nele, mas tipo como eu faço para em tempo de execução, mudar essa mascara se uma determinada condição for verdadeira???

eu tentei instanciar um novo objeto Jformattedtextfield dentro da msm variavel com uma mascara difente mas nao funcionou , parece q o swing não aceita a coisa é mais ou menos assim:

eu tenho um combo box, q tem as opções consultar por Nome, Cpf, Cnpj, quando o usuario clicase em Nome o Jformattedtextfield ficaria sem mascara nem uma ai o usuario digita o nome e a aparece a consulta dele no JTbale, mas por exemplos depois o cara q consultar por Cpf ele escolhe a opção Cpf no Combo box e o Jformattedtextfield fica com a mascara de cpf, ele digita o CPF e faz a busca no banco de dados e joga no Jtable.

eu justamnete não consigo fazer essa mudança no Jformattedtextfield de uma hora ele ta com uma mascara, depois de uma dertemina condição essa mascara muda de formato ou fica sem mascara …

Obrigado pessoal
espero ajuda de vcs ja pesquisei no google e nada, conto com vcs abraços

Jformattedtextfield

cria outro textfield na mesma posição, mas deixando ele invisível…
quando muda a opção no combo, deixa visível aquele text field q vc quer usar e deixa invisível os q vc não quer usar…

É só fazer o seguinte para alterar a máscara Jformattedtextfield:


jFormattedTextField.setFormatterFactory(null);
javax.swing.text.MaskFormatter format = new javax.swing.text.MaskFormatter("###.###.###-##");
format.setPlaceholderCharacter('0');
jFormattedTextField.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(format));
jFormattedTextField.setValue(null);

bom… eu tenho um JFormattedTextField para CPF e CNPJ, se a pessoa marcar um comboBox, a mascara do formattedTextField muda para CPF, caso contrario fica CNPJ.
soh que quando eu fecho o internalFrame com o campo do formattedTextField preenchido, ele n aceita mais a mascara quando eu abro novamente o internalFrame e marco o comboBox para mudar a mascara para CPF.
Talvez dessa forma q vc massou funcione, irei testar…
Vlw pela dica!

Bom, o tópico é antigo, mas não teve uma resposta final.

Eu estava com o problema parecido com o do nosso amigo, porém eu teria que tirar a máscara do jFormattedTextField1, deixando ele como um jtextfield normal, então usei o código abaixo!

jFormattedTextField1.setFormatterFactory(null);
jFormattedTextField1.setText("");

Abraço galera!

[code] //Formato CPF
private DefaultFormatterFactory getFormatoCpf() {
MaskFormatter comFoco = null;
try {
comFoco = new MaskFormatter("###.###.###-##");
comFoco.setPlaceholderCharacter(’’);
comFoco.setOverwriteMode(true);
comFoco.setValidCharacters(“0123456789”);
} catch (Exception pe){
System.out.println(pe.getMessage());
}
DefaultFormatterFactory factory = new DefaultFormatterFactory(comFoco, comFoco);
return factory;
}
//Formato CNPJ
private DefaultFormatterFactory getFormatoCnpj() {
MaskFormatter comFoco = null;
try {
comFoco = new MaskFormatter("##.###.###/####-##");
comFoco.setPlaceholderCharacter(’
’);
comFoco.setOverwriteMode(true);
comFoco.setValidCharacters(“0123456789”);
} catch (Exception pe){
System.out.println(pe.getMessage());
}
DefaultFormatterFactory factory = new DefaultFormatterFactory(comFoco, comFoco);
return factory;
}

//Evento que muda a mascara no JFormatedTextField 
//Este evento esta dentro de um radio button com o texto PESSOA FISICA 
//e no evento do RadioButton PESSO JURIDICA coloco uma chamada para este mesmo método
private void jrbFisicaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbFisicaActionPerformed
    jftfCpfCnpj.setValue("");
    if (jrbFisica.isSelected()){
        jftfCpfCnpj.setFormatterFactory(getFormatoCpf());
    } else{
        jftfCpfCnpj.setFormatterFactory(getFormatoCnpj());
    }
}//GEN-LAST:event_jrbFisicaActionPerformed[/code]

Qualquer duvida poste um novo topico que posso te ajudar com outros componentes !!

Espero ter ajudado…