Problemas na organização de painél usando JPanel

Boa tarde pessoa!

Estou trabalhando com interface no java estou tendo um pequeno problema para organizar os comandos de forma adequada no painel!

O painel deveria ficar assim:

Nome: ________________________
Coeficiente: _______ Sexo: _______
Nº de Alunos Cadastrados: ________

O painel está saindo assim:

Nome: ________________________
Coeficiente: ___________________
Sexo: ________________________
Nº de Alunos Cadastrados: _______

O código usado é esse:

package interfaceGrafica;   
  
import java.awt.BorderLayout;   
import java.awt.GridLayout;   
import java.awt.event.ActionEvent;   
import java.awt.event.ActionListener;   
  
import javax.swing.JButton;   
import javax.swing.JLabel;   
import javax.swing.JPanel;   
import javax.swing.JTextField;   
  
public class PainelCadastrar extends JPanel{   
       
    //Rótulos;   
    private JLabel nome;   
    private JLabel coeficiente;   
    private JLabel sexo;   
    private JLabel numeroCadastros;   
       
    //Campos;   
    private JTextField campoNome;   
    private JTextField campoCoeficiente;   
    private JTextField campoSexo;   
    private JTextField campoNumeroCadastros;   
       
    //Botões   
    private JButton botaoCadastrar;   
    private JButton botaoLimpar;   
       
    private JPanel painelCampos;   
    private JPanel painelBotoes;   
    private JPanel painelAuxiliar;   
       
    public PainelCadastrar(){   
           
        //Criação de rótulos;   
        nome = new JLabel("Nome: ");   
        coeficiente = new JLabel("Coeficiente: ");   
        sexo = new JLabel("Sexo: ");   
        numeroCadastros = new JLabel("Nº de alunos Cadastrados: ");   
           
        //Criação de campos;   
        campoNome = new JTextField(20);   
        campoCoeficiente = new JTextField(5);   
        campoSexo = new JTextField(2);   
        campoNumeroCadastros = new JTextField(5);   
           
        //Criação de botões;   
        botaoCadastrar = new JButton("Cadastrar");   
        botaoLimpar = new JButton("Limpar");   
           
        //Criação de painéis;   
        painelCampos = new JPanel(new GridLayout(4, 3, 5, 5));   
        painelBotoes = new JPanel();   
        painelAuxiliar = new JPanel();   
           
        painelCampos.add(nome);   
        painelCampos.add(campoNome);   
           
        painelCampos.add(coeficiente);   
        painelCampos.add(campoCoeficiente);   
           
        painelCampos.add(sexo);   
        painelCampos.add(campoSexo);   
  
        painelCampos.add(numeroCadastros);   
        painelCampos.add(campoNumeroCadastros);   
           
        painelBotoes.add(botaoCadastrar);   
        painelBotoes.add(botaoLimpar);   
           
        painelAuxiliar.add(painelCampos);   
           
        this.setLayout(new BorderLayout(5, 5));   
        this.add(painelAuxiliar, BorderLayout.CENTER);   
        this.add(painelBotoes, BorderLayout.SOUTH);   
  
        //Tratamento de eventos;   
        botaoLimpar.addActionListener(   
                new ActionListener(){   
                       
                    public void actionPerformed(ActionEvent e){   
                        campoNome.setText("");   
                        campoCoeficiente.setText("");   
                        campoSexo.setText("");   
                    }   
                }   
        );   
               
    }   
} 

Se vocês conseguirem achar onde está o problema e me darem um dica, agradeço!

Obrigado!

De uma olhada no Jgoodies Forms. Não sei se você conhece mas o JGoodies Forms é um excelente gerenciador de layout.(minha opinião)

http://www.jgoodies.com/freeware/forms/

Opa valeu pela dica anderson! Vou ver o que faço com essa ferramenta!

Obrigado!

O MigLayout também é bem interessante e fácil de usar.

Seu código para deixar a tela como voce quer ficaria assim com ele:

        //Criação de painéis;   
        painelCampos = new JPanel(new MigLayout());   
        painelBotoes = new JPanel();   
        painelAuxiliar = new JPanel();   
           
        painelCampos.add(nome);   
        painelCampos.add(campoNome, "span");   
           
        painelCampos.add(coeficiente);   
        painelCampos.add(campoCoeficiente);   
           
        painelCampos.add(sexo);   
        painelCampos.add(campoSexo, "wrap");   
  
        painelCampos.add(numeroCadastros);   
        painelCampos.add(campoNumeroCadastros);   
           
        painelBotoes.add(botaoCadastrar);   
        painelBotoes.add(botaoLimpar);   
           
        painelAuxiliar.add(painelCampos);   
           
        this.setLayout(new BorderLayout(5, 5));   
        this.add(painelAuxiliar, BorderLayout.CENTER);   
        this.add(painelBotoes, BorderLayout.SOUTH);   

“span” Faz o colspan até o final e muda de linha
"wrap" passa pra proxima linha.

Siga o Quickstart Guide que tem no site é facil aprender.

Opa Mark valeu! Vou testá-lo agora mesmo! Obrigado pela força!