Mega Code Archive

 
Categories / Java / Swing JFC
 

GridBagLayout Pane

/*  * Copyright (c) 2000 David Flanagan. All rights reserved. This code is from the  * book Java Examples in a Nutshell, 2nd Edition. It is provided AS-IS, WITHOUT  * ANY WARRANTY either expressed or implied. You may study, use, and modify it  * for any non-commercial purpose. You may distribute it non-commercially as  * long as you retain this notice. For a commercial use license, or to purchase  * the book (recommended), visit http://www.davidflanagan.com/javaexamples2.  */ import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class GridBagLayoutPane extends JPanel {   public GridBagLayoutPane() {     // Create and specify a layout manager     this.setLayout(new GridBagLayout());     // Create a constraints object, and specify some default values     GridBagConstraints c = new GridBagConstraints();     c.fill = GridBagConstraints.BOTH; // components grow in both dimensions     c.insets = new Insets(5, 5, 5, 5); // 5-pixel margins on all sides     // Create and add a bunch of buttons, specifying different grid     // position, and size for each.     // Give the first button a resize weight of 1.0 and all others     // a weight of 0.0. The first button will get all extra space.     c.gridx = 0;     c.gridy = 0;     c.gridwidth = 4;     c.gridheight = 4;     c.weightx = c.weighty = 1.0;     this.add(new JButton("Button #1"), c);     c.gridx = 4;     c.gridy = 0;     c.gridwidth = 1;     c.gridheight = 1;     c.weightx = c.weighty = 0.0;     this.add(new JButton("Button #2"), c);     c.gridx = 4;     c.gridy = 1;     c.gridwidth = 1;     c.gridheight = 1;     this.add(new JButton("Button #3"), c);     c.gridx = 4;     c.gridy = 2;     c.gridwidth = 1;     c.gridheight = 2;     this.add(new JButton("Button #4"), c);     c.gridx = 0;     c.gridy = 4;     c.gridwidth = 1;     c.gridheight = 1;     this.add(new JButton("Button #5"), c);     c.gridx = 2;     c.gridy = 4;     c.gridwidth = 1;     c.gridheight = 1;     this.add(new JButton("Button #6"), c);     c.gridx = 3;     c.gridy = 4;     c.gridwidth = 2;     c.gridheight = 1;     this.add(new JButton("Button #7"), c);     c.gridx = 1;     c.gridy = 5;     c.gridwidth = 1;     c.gridheight = 1;     this.add(new JButton("Button #8"), c);     c.gridx = 3;     c.gridy = 5;     c.gridwidth = 1;     c.gridheight = 1;     this.add(new JButton("Button #9"), c);   }   public static void main(String[] a) {     JFrame f = new JFrame();     f.addWindowListener(new WindowAdapter() {       public void windowClosing(WindowEvent e) {         System.exit(0);       }     });     f.setContentPane(new GridBagLayoutPane());     f.pack();     f.setVisible(true);   } }