Ecco un esempio minimale di uso di GridBagLayout per realizzare un classico "modulo" di inserimento dati.

codice:
import java.awt.*;
import javax.swing.*;

public class TestFrame extends JFrame {
    private Container contentPane;
    private GridBagLayout gridbag;

    public TestFrame() {
        super("Test");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        contentPane = getContentPane();
        gridbag = new GridBagLayout();

        contentPane.setLayout(gridbag);

        setupRiga(0, new JLabel("Nome"), new JTextField(20));
        setupRiga(1, new JLabel("Cognome"), new JTextField(25));
        setupRiga(2, new JLabel("Sesso"), new JComboBox(new String[] { "", "Maschio", "Femmina" }));
        setupRiga(3, new JLabel("Citta`"), new JTextField(30));

        pack();
    }

    private void setupRiga(int r, Component leftComp, Component rightComp) {
        GridBagConstraints c = new GridBagConstraints();
        c.gridy = r;
        c.anchor = GridBagConstraints.WEST;

        c.insets = new Insets(r == 0 ? 10 : 0, 10, 10, 0);
        c.gridx = 0;

        contentPane.add(leftComp, c);

        c.insets = new Insets(r == 0 ? 10 : 0, 10, 10, 10);
        c.gridx = 1;

        contentPane.add(rightComp, c);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new TestFrame().setVisible(true);
            }
        });
    }
}