Boa noite pessoal, tenho um ComboBox que define o tipo de pessoa entre Física e Jurídica e estou com a seguinte dificuldade, como devo desenvolver uma classe para o campo onde deverá ser armazenado um CPF/CNPJ com a sua respectiva máscara sendo alterada de acordo com o item selecionado no ComboBox, abaixo segue a classe do ComboBox
public class MeuComboBoxTipoPessoa extends JComboBox implements MeuComponente {
private String dica;
private boolean obrigatorio;
public MeuComboBoxTipoPessoa (String dica, boolean obrigatorio) {
this.dica = dica;
this.obrigatorio = obrigatorio;
addItem("Física");
addItem("Jurídica");
}
public void limpar() {
setSelectedIndex(0);
}
public boolean eObrigatorio() {
return obrigatorio;
}
public boolean eValido() {
return true;
}
public boolean eVazio() {
return false;
}
public String getDica() {
return dica;
}
public void setText(String valor) {
if (valor.equals("Física")) {
String.format(valor, "Física");
} else {
String.format(valor, "Jurídica");
}
}
public String getText() {
if (getSelectedIndex() == 0) {
return "Física";
} else {
return "Jurídica";
}
}
}
Da forma que está realmente funciona yhhik, mas a forma que estou tentando fazer é diferente, pretendo criar outra classe para o campo que irá receber o CPF ou CNPJ. Tenho isso pronto:
package Componentes;
import Estrutura.MeuComponente;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import javax.swing.text.MaskFormatter;
public class MeuCPFCNPJ extends MeuJFormattedTextField implements MeuComponente, ActionListener {
private String pessoa;
private MaskFormatter mfCpf, mfCnpj;
public MeuCPFCNPJ(String dica, boolean obrigatorio) {
super(dica, obrigatorio, 11);
try {
mfCpf = new MaskFormatter("###.###.###-##");
mfCnpj = new MaskFormatter("##.###.###/####-##");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Não foi possível carregar a máscara do MeuCPFCNPJ");
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent e) {
}
public void setMascara(String pessoa) {
if (pessoa.equals("Física")) {
mfCpf.install(this);
} else if (pessoa.equals("Jurídica")) {
mfCnpj.install(this);
} else {
JOptionPane.showMessageDialog(null, "Não foi possível definir a máscara do MeuCPFCNPJ");
}
}
}
A minha dificuldade está em como fazer essa classe receber o valor do BomboBox da outra classe (os valores “Física” ou “Jurídica”) de forma que o método setMascara possa alterar a máscara segundo a definição no ComboBox.