Estou tendo problema com com JTabbedPane e seus paines ao usar o GridBagLayout. No primeiro painel eu consigo alinhar eles certo, mas no segundo eles fica centralizados no meio…Alguem poderia me ajduar ?
public class TelaCliente extends TelaPadrao implements ItemListener
{
GridBagLayout gbt = new GridBagLayout();
private JCheckBox check1 = new JCheckBox("Física", false);
private JCheckBox check2 = new JCheckBox("Jurídica", false);
private ButtonGroup btGrupo = new ButtonGroup();
private MeuCampoInteiro campoCodigo = new MeuCampoInteiro(4, true, false, "Código");
private MeuCampoTexto campoNome = new MeuCampoTexto(30, true, "Nome");
private MeuCampoTexto campoEndereco = new MeuCampoTexto(35, true, "Endereco");
private MeuCampoTexto campoNumero = new MeuCampoTexto(6, false, "Número");
private MeuCampoTexto campoComplemento = new MeuCampoTexto(18, false, "Complemento");
private MeuCampoTexto campoBairro = new MeuCampoTexto(18, false, "Bairro");
private MeuCampoCep campoCep = new MeuCampoCep(false, "CEP");
private MeuCampoCpf campoCpf = new MeuCampoCpf(true, "CPF");
private MeuCampoCpf campoCnpj = new MeuCampoCpf(true, "CNPJ");
private MeuCampoRg campoRg = new MeuCampoRg(false, "RG");
private MeuCampoTelefone campoTelefone = new MeuCampoTelefone(false, "Telefone");
private MeuCampoTelefone campoCelular = new MeuCampoTelefone(false, "Celular");
private MeuCampoTexto campoEmail = new MeuCampoTexto(50, false, "Email");
public MeuComboBox campoCidade = new MeuComboBox();
private JPanel panel = new JPanel(gbt);
private JPanel panel2 = new JPanel(gbt);
private JPanel panelGrupo = new JPanel(gbt);
private MeuJLabel tipo = new MeuJLabel("CPF/CNPj");
private MeuCampoCJ campoCJ = new MeuCampoCJ(false, true, "CPF/CNPj");;
public TelaCliente(){
super("Cliente");
gbc.fill = GridBagConstraints.BOTH;
tbp.add("Dados", panel);
tbp.add("Contatos", panel2);
addComponente(0, 0, 100, 100, 1, 1, oeste, panelCentral, tbp);
btGrupo.add(check1);
btGrupo.add(check2);
panelGrupo.add(check1);
panelGrupo.add(check2);
check1.addItemListener(this);
check2.addItemListener(this);
panelGrupo.setBorder(BorderFactory.createTitledBorder("Tipo Pessoa"));
montaComponente();
habilitarCampos(false);
pack();
}
private void montaComponente() {
gbc.fill = GridBagConstraints.NONE;
addComponente(1, 3, 100, 100, 1, 2, oeste, panel, panelGrupo);
addComponente(1, 1, 100, 100, 1, 1, oeste, panel, new MeuJLabel("Código"));
addComponente(2, 1, 100, 100, 1, 1, oeste, panel, campoCodigo);
addComponente(3, 1, 100, 100, 1, 1, oeste, panel, new MeuJLabel("Nome"));
addComponente(4, 1, 100, 100, 2, 1, oeste, panel, campoNome);
addComponente(5, 1, 100, 100, 1, 1, oeste, panel, new MeuJLabel("Endereço"));
addComponente(6, 1, 100, 100, 2, 1, oeste, panel, campoEndereco);
addComponente(5, 3, 100, 100, 1, 1, oeste, panel, new MeuJLabel("Número"));
addComponente(6, 3, 100, 100, 1, 1, oeste, panel, campoNumero);
addComponente(7, 1, 100, 100, 2, 1, oeste, panel, new MeuJLabel("Complemento"));
addComponente(8, 1, 100, 100, 1, 1, oeste, panel, campoComplemento);
addComponente(7, 2, 100, 100, 1, 1, oeste, panel, new MeuJLabel("Bairro"));
addComponente(8, 2, 100, 100, 1, 1, oeste, panel, campoBairro);
addComponente(9, 1, 100, 100, 1, 1, oeste, panel, new MeuJLabel("CEP"));
addComponente(10,1, 100, 100, 1, 1, oeste, panel, campoCep);
addComponente(11, 1, 100, 100, 1, 1, oeste, panel, tipo);
addComponente(12, 1, 100, 100, 1, 1, oeste, panel, campoCJ);
addComponente(11, 2, 100, 100, 1, 1, oeste, panel, new MeuJLabel("RG"));
addComponente(12, 2, 100, 100, 1, 1, oeste, panel, campoRg);
addComponente(9, 2, 100, 100, 1, 1, oeste, panel, new MeuJLabel("Cidade"));
addComponente(10, 2, 100, 100, 1, 1, oeste, panel, campoCidade);
gbc.anchor = GridBagConstraints.NONE;
addComponente(1, 1, 0, 0, 1, 1, oeste, panel2, new MeuJLabel("Telefone Residencial"));
addComponente(2, 1, 0, 0, 1, 1, oeste, panel2, campoTelefone);
addComponente(3, 1, 0, 0, 1, 1, oeste, panel2, new MeuJLabel("Celular"));
addComponente(4, 1, 0, 0, 1, 1, oeste, panel2, campoCelular);
}
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getItem() == check1){
tipo.setText(null);
remove(campoCJ);
tipo.setText("CPF");
addComponente(11, 1, 100, 100, 1, 1, oeste, panel, tipo);
addComponente(12, 1, 100, 100, 1, 1, oeste, panel, campoCpf);
updateUI();
}else if (e.getItem() == check2){
tipo.setText(null);
remove(campoCJ);
tipo.setText("CNPJ");
addComponente(11, 1, 100, 100, 1, 1, oeste, panel, tipo);
addComponente(12,1, 100, 100, 1, 1, oeste, panel, campoCnpj);
updateUI();
}
}
}
public void addComponente(int linha, int coluna, int largura, int altura, int nColuna, int nLinha, int posicao, Container panel, Component componente)
{
gbc.gridx = coluna;
gbc.gridy = linha;
gbc.weightx = largura;
gbc.weighty = altura;
gbc.gridwidth = nColuna;
gbc.gridheight = nLinha;
gbc.anchor = posicao;
gbc.insets = new Insets(3,3,3,3);
panel.add(componente,gbc);
if (componente instanceof MeuComponente){
campos.add((MeuComponente) componente);
}
}