Q:

all my components are placed over each other, i've been tryna figure it out a while now

can someone please tell me what i'm doing wrong, i tried laying ot panels first but same results, then i went back to using the components and same results, all the components a layed untop of each other, i've tried all sorts of things, same results, they're layed untop each other and to the middle
public class FnaComponents extends JPanel 
{

public FnaComponents()
{
    gridbag = new GridBagLayout();
    setLayout(gridbag);
    setPreferredSize(new Dimension(600,600));
    //setBackground(Color.lightGray);

    mainPanel = new JPanel(gridbag);
    mainPanel.setPreferredSize(new Dimension(600, 600));

    pTextField = new JTextField();
    //addcomponents(new JLabel("Policy #"), mainPanel, 0, 0, 0, 0, 0, 0, GridBagConstraints.NONE, GridBagConstraints.NORTHWEST);
    //addcomponents(pTextField, mainPanel, null, 2, 0, 2, 0, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);

    Invisible = new JButton();
    //addcomponents(Invisible, mainPanel, 0, 0, 0, 0, 0, 0, GridBagConstraints.NONE, GridBagConstraints.EAST);

    newbTextField = new JTextField();
    newbButton = new JButton("Cal Icon");
    //addcomponents(new JLabel("NB Date:"), mainPanel, 1, 0, 0, 0, 4, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    //addcomponents(newbTextField,mainPanel, null, 1, 1, 2, 0, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    //addcomponents(newbButton,mainPanel, 1, 4, 0, 0, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);

    bilimButton = new JComboBox<>(bilimits);
    bilimButton.setEditable(true);
    bicslButton = new JComboBox<>(bicsl);
    bicslButton.setEditable(true);
    //addcomponents(new JLabel("BI Limit:"), mainPanel, 2, 0, 0, 0, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    //addcomponents(bilimButton, mainPanel, 2, 1, 0, 0, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    //addcomponents(bicslButton,mainPanel, 2, 2, 0, 0, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);

    lapseButton = new JComboBox<>(lapse);

    //addComponents(new JLabel("Lapse:"), tophalf, 3, 0, 2, 0, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    //addComponents(lapseButton, lPanel);
    //addcomponents(lapseButton, tophalf, 3, 1, 0, 0, 4, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);

    addcomponents(mainPanel, this, null);
    add(mainPanel, BorderLayout.NORTH);

}
// method to add components to a container 
private void addcomponents(JComponent cont, Container main, Border border)
{
    Color code = new Color(0, 255, 255);

    Border padborder = BorderFactory.createEmptyBorder(10, 10, 10, 10);
    Border bord = BorderFactory.createLineBorder(code, 1, true);
    border = BorderFactory.createCompoundBorder(bord, padborder);

    cont.setBorder(border);

    main.add(cont);  
}

// method to add components to a container 
private void addcomponents(JComponent cont, Container main, int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty, int fill, int anchor)
{
    GridBagConstraints gbc = new GridBagConstraints();

    gbc.gridx = gridx;
    gbc.gridy = gridy;
    gbc.gridwidth = gridwidth;
    gbc.gridheight = gridheight;
    gbc.weightx = weightx;
    gbc.weighty = weighty;
    gbc.fill = fill;
    gbc.anchor = anchor;
    gbc.insets = new Insets(10, 10, 10, 10);
    gridbag.setConstraints(cont, gbc);
    main.add(cont);
}

// method to add components to a container 
private void addcomponents(JComponent cont, Container main, Border border, int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty, int fill, int anchor)
{
    GridBagConstraints gbc = new GridBagConstraints();

    Color code = new Color(0, 255, 255);

    Border padborder = BorderFactory.createEmptyBorder(10, 10, 10, 10);
    Border bord = BorderFactory.createLineBorder(code, 1, true); 
    border = BorderFactory.createCompoundBorder(bord, padborder);

    gbc.gridx = gridx;
    gbc.gridy = gridy;
    gbc.gridwidth = gridwidth;
    gbc.gridheight = gridheight;
    gbc.weightx = weightx;
    gbc.weighty = weighty;
    gbc.fill = fill;
    gbc.anchor = anchor;
    gbc.insets = new Insets(10, 10, 10, 10);

    cont.setBorder(border);
    gridbag.setConstraints(cont, gbc);
    main.add(cont);  
}
}

A:

The code is a little hard to read...
First, I'd advise against sharing the same instance of GridBagLayout between containers...
gridbag = new GridBagLayout();
setLayout(gridbag);
//...
mainPanel = new JPanel(gridbag);

This could cause issues, instead, give each container their own instance of GridBagLayout
This means you won't be able to do something like gridbag.setConstraints(cont, gbc); and in fact, I'd probably recommend against it based on the way you code is trying to work, instead, use something like main.add(cont, gbc), which will pass the constraints down to the currently assigned layout manager.
Second, gridwidth and gridheight should be no less then 1 in normal cases, otherwise, you end up with the issues you have
So you should be using something more like...
addcomponents(new JLabel("Policy #"), mainPanel, 0, 0, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.NORTHWEST);
addcomponents(pTextField, mainPanel, null, 2, 0, 2, 1, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);

While this is okay, because of the number of parameters, it becomes really easy to lose track of which parameter does what.  I might consider using a builder pattern instead to build the constraints, but that's me

