[RESOLVIDO] Alteração de máscara em jFormattedTextField através de jRadioButton

5 respostas
F

Olá, pessoal.

Estou iniciando em Java e preciso fazer um programa que contenha um campo para cadastro tanto de CPF quanto de CNPJ. Preciso colocar uma máscara de acordo com a opção selecionada num jRadioButton (se estiver selecionado "pessoa física", o FormattedText terá uma máscara para CPF, se for "pessoa jurídica" que está selecionado, a máscara mudará para uma de CNPJ).

O meu código está assim:

private void jRdbJuridicaActionPerformed(java.awt.event.ActionEvent evt) {                                             
        // TODO add your handling code here:
        jFormattedTextField1.setText("");
        try {  
        jFormattedTextField1.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("##.###.###/####-##")));  
        } catch (java.text.ParseException ex) {  
        ex.printStackTrace();  
        }  
    }                                            

    private void jRdbFisicaActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:
        jFormattedTextField1.setText("");
        try {  
        jFormattedTextField1.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("###.###.###-##")));  
        } catch (java.text.ParseException ex) {  
        ex.printStackTrace();  
       }  
    }

A máscara funciona quando eu seleciono os valores do RadioButton, porém, se eu preencher o campo de texto e depois resolver alterar a seleção do RadioButton, não consigo mais alterar o FormattedTextField. Por exemplo, eu seleciono "Pessoa física" e preencho o CPF normalmente, se eu mudar para "pessoa jurídica", não consigo digitar mais nada no FormattedTextField, ele fica como se estivesse bloqueado.

Desde já, obrigado.

5 Respostas

michetti

Por que você ao invés de criar um evento não cria um if..
Tipo:

if(jRadioBox1.isSelected()){
       jFormattedTextField1.setText("");  
    try {    
    jFormattedTextField1.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("##.###.###/####-##")));    
    } catch (java.text.ParseException ex) {    
    ex.printStackTrace();    
    }  
} else if(jRadioBox2.isSelected()){
           jFormattedTextField1.setText("");  
    try {    
    jFormattedTextField1.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("###.###.###-##")));    
    } catch (java.text.ParseException ex) {    
    ex.printStackTrace();    
   } 


}
F

Obrigado pela resposta, mas não consegui. Onde exatamente eu ponho esse if? Em todas as tentativas aconteceram a mesma coisa que acontecia antes.

Como eu disse, estou aprendendo Java agora, então o erro provavelmente é meu, mas de qualquer forma, obrigado.

michetti

Realmente… testei aqui e apresentou o mesmo problema… tentei resolver e não consegui também rsrs
Desculpe mas não poderei ajudar mais =/

F

Consegui fazer o que queria, mas de outra forma: criei dois jFormattedTextFields um em cima do outro, e cada um com uma máscara. Ao clicar nos botões do RadioButton, ele esconde um dos campos de texto.

Obrigado pelas respostas.

michetti

Não é a melhor solução, mas… funciona kk

Criado 3 de novembro de 2013
Ultima resposta 6 de nov. de 2013
Respostas 5
Participantes 2