Problema em carregar form com GridBagLayout

Sr.'s estou com um problema em meu trabalho, não consigo fazer o form carregar, utilizao o gerenciador de Layout GridBagLayout.
Ja tentei d tudo, olhando exemplos e nada, se alguem puder me ajudar, estou com muit urgência, pois tenho q entregar hoje o trabalho.
Segue abaixo codigo da minha classe principal
Desde já agradeço.

import javax.swing.;
import javax.swing.JFrame;
import java.util.
;
import java.awt.;
import java.awt.event.
;

public class Principal extends JFrame{

public Principal () {
    super("Controle de Contatos");
    //Define o gerenciador de layout do frame

// getContentPane().setLayout(new BorderLayout());
getContentPane().setLayout(new GridBagLayout());

    //insere uma barra de menu
    JMenuBar barra = new JMenuBar();
    setJMenuBar(barra); //insere a barra no frame 
    
    ArquivoMenu bd = new ArquivoMenu();
    barra.add(bd);
    
    //Cria o painel com o formulário
    CadastroForm af = new CadastroForm();
    
    //Adiciona o painel com o formulário

// getContentPane().add(af, BorderLayout.CENTER);//Adiciona no centro do frame*/
getContentPane().add(af);//Adiciona no centro do frame*/

    pack(); //ajusta o tamanho do frame para comportar os componentes.
    
    setVisible(true); //exibe o frame        
}    
    
private static int strToInt(String s) {
    int result=0;
    try {
        result = Integer.parseInt(s);
    }
    catch (NumberFormatException e) {
        System.out.println(e);
    }
    return result;
}

private static double strToDouble(String s) {
    double result=0;
    try {
        result = Double.parseDouble(s);
    }
    catch (NumberFormatException e) {
        System.out.println(e);
    }
    return result;
}    
public static void main(String args[]) {
    Principal app = new Principal();
    app.addWindowListener(
        new WindowAdapter() {
            public void windowClosing(WindowEvent evt) {
                System.exit(0);
            }
        }
    );
} 

}

Qual o problema que está dando ?

No GrifBagLayout quando você for adicionar algum componente a um JPanel, você vai usar

getJContentPane().add(componente, cons);

esse cons tem os dados de como o componente vai se comportar na tela:
GridBagConstraints cons = new GridBagConstraints();
cons.insets = new Insets(2,2,2,2);
cons.fill = GridBagConstraints.BOTH;
cons.anchor = GridBagConstraints.NORTHEAST;
cons.gridx = 0;
cons.gridy = 0;
cons.gridheight = 0;
cons.gridwidth = 1;
cons.ipadx = 0;
cons.ipady = 0;

esta e a linha 35

c.add(af);//Adiciona no centro do frame*/

Estas sao as linhas de erro que me apresenta

java.lang.IllegalArgumentException: adding a window to a container
at java.awt.Container.addImpl(Container.java:616)
at java.awt.Container.add(Container.java:307)
at Principal.<init>(Principal.java:35)
at Principal.main(Principal.java:76)

esse seu cadastro form herda de javax.swing.JPanel ???
(ele precisa herdar… pelo que eu estou entendendo ele é um panel com o formulário…)

ele herda o JFrame

MC,

Esse seu “af”, CadastroForm, precisa herdar de JPanel para poder ser incluído em no panel de um JFrame.
E quando vc for adicionar, não utilize getContentPane().add(af), mas sim getContentPane().add(af, cons) sendo que o “cons” ja foi previamente instanciado conforme eu te expliquei anteriormente.

Ok, a todos que me deram uma mão agradeço.
Qualquer dúvida entro em contato, por enquanto fica meu obrigado.
t+