jFormattedTextField mudar formato em tempo de execução!

Alou pessoal,

Estou com o seguinte problema:

Tenho um jFormattedTextField que irá receber uma data ou um cpf, preciso saber como mudar o formato do mesmo.

Por ex:
No formulário o usuário escolhe numa combo se quer pesquisar por nome, data, codigo do cheque ou CPF.
Sempre que o usuário escolhe data ou CPF, não estou conseguindo alterar a máscara do campo. Assim, o formulário tem que ser fechado e aberto de novo para que o campo seja formatado com uma mascara diferente!

Alguém sabe como fazer isso?

[quote=KIMBA] Alou pessoal,

Estou com o seguinte problema:

Tenho um jFormattedTextField que irá receber uma data ou um cpf, preciso saber como mudar o formato do mesmo.

Por ex:
No formulário o usuário escolhe numa combo se quer pesquisar por nome, data, codigo do cheque ou CPF.
Sempre que o usuário escolhe data ou CPF, não estou conseguindo alterar a máscara do campo. Assim, o formulário tem que ser fechado e aberto de novo para que o campo seja formatado com uma mascara diferente!

Alguém sabe como fazer isso? [/quote]

Como ele escolhe a data ou o cpf ?
Tem um JCombo ou um JRadioGroup ?
Depois da escolha que vc coloca a máscara ?

Opa,

Obrigado pelo interesse…

Sim, eu uso uma combo para escolher o tipo de dado…

Aí, na 1ª vez, ótimo, da tudo certo, ele instala a máscara e blz. Porém, quando escolho outro formato ele não substitui a máscara existente…
Já li vários tutoriais, JAVADOC, site da sun…e nada.

Vou por um trecho do código aqui…

//Este método está no action da jComboBox
private void formataChave(int op){
switch (op) {
case 1: edChave.setEditable(false);
break;
case 5: edChave.setEditable(true);
Utils.formataCampo(edChave, “########-##########-############”);
break;
case 6: edChave.setEditable(true);
edChave.removeAll();
edChave.setText(null);
Utils.formataData(edChave);
break;
default: edChave.setEditable(true);
edChave.removeAll();
break;
}
}

//Este método é utilizado acima
public static void formataCampo(javax.swing.JFormattedTextField campo, String formato){
MaskFormatter mskData;
try {
mskData = new MaskFormatter();
mskData.setMask(formato);
mskData.install(campo);
} catch (NullPointerException npe){
npe.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}

Se puder ajudar agradeço!

Amigo. estou com o mesmo problema
so que usei este codigo… vc ja conseguiu resolver ?

[code] try {
mascaraCPF = new MaskFormatter("###.###.###-##");
mascaraCNPJ = new MaskFormatter("##.###.###.##-####/##");
} catch (ParseException exc) {
}

    if (jComboBox1.getSelectedItem().equals("1")) {
        jFormattedTextField1.setFormatterFactory(new DefaultFormatterFactory(mascaraCPF));
    } else {
        jFormattedTextField1.setFormatterFactory(new DefaultFormatterFactory(mascaraCNPJ));
    }
    [/code]

Respondi uma pergunta muito parecida com essa agorinha msm, creio que resolva o problema de vcs, vejam:

http://www.guj.com.br/posts/list/48770.java

:smiley: