jFormattedTextField mudar formato em tempo de execução!

4 respostas
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?

4 Respostas

dsfextreme

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?

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

KIMBA

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!

marciofermino

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

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));
        }
RenataFA

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:

Criado 29 de junho de 2006
Ultima resposta 7 de fev. de 2008
Respostas 4
Participantes 4