JFormateField mascara em condições diferentes

5 respostas
A

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

5 Respostas

Lich_King

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…

P

É 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);
root_

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!

filiperangel

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!

fabiojwalter
//Formato CPF
	private DefaultFormatterFactory getFormatoCpf() {
        MaskFormatter comFoco = null;
        try {
            comFoco = new MaskFormatter("###.###.###-##");
            comFoco.setPlaceholderCharacter('_');
            comFoco.setOverwriteMode(true);
            comFoco.setValidCharacters("[telefone removido]");
        } 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("[telefone removido]");
        } 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

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

Espero ter ajudado...

Criado 18 de março de 2007
Ultima resposta 14 de out. de 2007
Respostas 5
Participantes 6