Starting GridBagLayout from top left corner in Java Swing

Emir picture Emir · Jun 15, 2011 · Viewed 33.9k times · Source

I'm new to Java Swing and I have been struggling to start the GridBagLayout from top left corner so that c.gridx=0 c.gridy=0 will put my object on the top left corner.

I'd appreciate if you could help me by telling what I need to do after this point:

    JPanel panel = new JPanel(new GridBagLayout());
    frame.add(panel);
    GridBagConstraints c = new GridBagConstraints();

I know that I have to use NORTHWEST or FIRST_LINE_START constants, but I don't know how. I tried to do it this way' but it did not realize the constants.

    frame.getContentPane().add(panel, BorderLayout.NORTHWEST);

Thanks for your help.

Answer

camickr picture camickr · Jun 16, 2011

Read the section from the Swing tutorial on How to Use GridBagLayout. The secton on "weightx,weighty" states:

Unless you specify at least one non-zero value for weightx or weighty, all the components clump together in the center of their container.