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

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:

[code] 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();  
   }  
}[/code]

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.

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

[code]
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();
}

}[/code]

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.

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

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.

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