Bom dia pessoal, criei um jpanel dentro de uma aba e não estou conseguindo posicionar os componentes na posição que desejo, ele adiciona tudo agrupado. Alguém pode me ajudar?
Obrigado!
Classe AbaCadastro
package Componentes;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.LayoutManager;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
public class MeuPainelAbaCadastro extends JPanel {
    public JPanel painelEsquerda = new JPanel();
    public JPanel painelDireita = new JPanel();
    public JPanel painelInterno = new JPanel();
    public JPanel painelDados = new JPanel();
    public JPanel painelDadosAdicionais = new JPanel();
    public JPanel painelLabel = new JPanel();
    public JPanel painelBotao = new JPanel();
    public MeuPainelAbaCadastro(LayoutManager layoutEsquerda) {
       setLayout(new BorderLayout());
       painelEsquerda.setLayout(layoutEsquerda);
       add("Center", painelEsquerda);
       add("East", painelDireita);
       painelEsquerda.add(painelInterno);
       painelInterno.setLayout(new FlowLayout());
       painelInterno.setLayout(new BorderLayout());
       painelInterno.add("North", painelDados);
       painelInterno.add("South", painelDadosAdicionais);
       painelDadosAdicionais.setLayout(new BorderLayout());
       painelDadosAdicionais.add("West", painelLabel);
       painelDadosAdicionais.add("East", painelBotao);
       
       //painelDadosAdicionaisConsulta.setBorder(BorderFactory.createEtchedBorder());
       painelDados.setBorder(BorderFactory.createEtchedBorder());
       painelDadosAdicionais.setBorder(BorderFactory.createEtchedBorder());
    }
}
TelaCadastro
package Cadastros.Telas;
import Cadastros.Pesistencia.PersistenciaEstado;
import Componentes.MeuCampoCodigo;
import Estrutura.*;
import Componentes.MeuJTextField;
import Componentes.MeuPainelAbaCadastro;
import Componentes.MeuPainelAbaConsulta;
import Componentes.MinhaData;
import java.awt.Dimension;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.event.InternalFrameEvent;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
public class TelaCadastroEstado extends TelaCadastro implements ListSelectionListener {
    
    private static TelaCadastroEstado telaCadastroEstado = null;
    private MeuCampoCodigo campoCodigo = new MeuCampoCodigo("Código", true, 5, false);
    private MinhaData campoData = new MinhaData("Data", true);
    private MeuJTextField campoNome = new MeuJTextField("Nome", true, 25);
    private MeuJTextField campoUf = new MeuJTextField("UF", true, 2);
    private DefaultTableModel dtm;
    private JTable tabela;
    private JScrollPane jsp;
    private PersistenciaEstado estado = new PersistenciaEstado();
    private MeuPainelAbaConsulta abaConsulta = new MeuPainelAbaConsulta(new GridBagLayout());
    private MeuPainelAbaCadastro abaCadastro = new MeuPainelAbaCadastro(new GridBagLayout());
    private JTabbedPane jtp = new JTabbedPane();
    private JLabel consultaSelecionado = new JLabel("Estado selecionado: ");
    private JLabel cadastroSelecionado = new JLabel("Estado Selecionado: ");
    public TelaCadastroEstado() {
        super("Cadastro de Estado");
        montaTela();
        preencheTabela();
        pack();
    }
    public void incluir() {
        super.incluir();
        estado.getPk();
        campoCodigo.setText(""+estado.getEstCodigo());
    }
    public static void getTela() {
        if (telaCadastroEstado == null) {
            telaCadastroEstado = new TelaCadastroEstado();
            Principal.jdp.add(telaCadastroEstado);
        }
        Principal.jdp.setSelectedFrame(telaCadastroEstado);
        telaCadastroEstado.requestFocus();
        Principal.jdp.moveToFront(telaCadastroEstado);
    }
    public void montaTela() {
        jtp.addTab("Consulta", abaConsulta);
        jtp.addTab("Cadastro", abaCadastro);
        add(jtp);
        abaCadastro.painelDireita.add(painelBotoes);
        painelBotoes.setLayout(new GridLayout(12, 1));
        painelBotoes.remove(jbConsultar);
        abaCadastro.painelDireita.setBorder(BorderFactory.createEtchedBorder());
        adicionarComponente(1,18,1,1, campoData, "Data", CIMA, abaCadastro.painelDados);  // É um método de uma classe TelaCadastro tentei fazer com setBaunds () mas também não posiciona onde eu quero.....
        adicionarComponente(3,2,1,1, campoCodigo, "Código", CIMA, abaCadastro.painelDados);
        adicionarComponente(3,4,3,1, campoNome, "Nome", CIMA, abaCadastro.painelDados);
        adicionarComponente(3,11,1,1, campoUf, "UF", CIMA, abaCadastro.painelDados);
        String[] colunas = new String[] {"Código", "Data Cadastro", "Nome", "UF"};
        String[][] dados = new String[][] {};
        dtm = new DefaultTableModel(dados, colunas);
        tabela = new JTable(dtm);
        tabela.getSelectionModel().addListSelectionListener(this);
        jsp = new JScrollPane(tabela);
        jsp.setPreferredSize(new Dimension (575,300));
        abaConsulta.painelDados.add(jsp);
        abaConsulta.painelDadosAdicionais.add(consultaSelecionado); 
        abaConsulta.painelBotao.add(jbSair2);
        abaCadastro.painelDadosAdicionais.add(cadastroSelecionado);
    }
}
[img]

[/img]
Desde já agradeço!