import java.awt.*;
import java.awt.GridBagLayout;

import javax.swing.*;

/**
 * @author Remi Forax
 *
 */
public class GridBagLayoutExample {

  public static void main(String[] args) {
    JFrame frame=new JFrame("GridBagLayoutExample");
    
    JPanel panel=new JPanel(new GridBagLayout());
    
    Object[] constraints=new Object[] {
      "1",new int[]{1,2},
      "2",new int[]{3,1},
      "3",new int[]{GridBagConstraints.REMAINDER,1},
      "4",new int[]{1,1},
      "5",new int[]{GridBagConstraints.RELATIVE,1},
      "6",new int[]{GridBagConstraints.REMAINDER,1}
    };
    
    GridBagConstraints gbc=new GridBagConstraints();
    for(int i=0;i<constraints.length;i+=2) {
      JButton button=new JButton(constraints[i].toString());
      int[] grids=(int[])constraints[i+1];
      gbc.gridwidth=grids[0];
      gbc.gridheight=grids[1];
      
      gbc.fill=GridBagConstraints.BOTH;
      gbc.weightx=1.0;
      //gbc.weighty=1.0;
      
      panel.add(button,gbc);
    }
    
    frame.setContentPane(panel);
    frame.pack();
    frame.show();
  }
}
