Section 19.2. GridLayout


19.2. GridLayout

GridLayout arranges components into regularly spaced rows and columns. The components are arbitrarily resized to fit the grid; their minimum and preferred sizes are consequently ignored. GridLayout is most useful for arranging identically sized objectsperhaps a set of JPanels, each using a different layout manager.

GridLayout takes the number of rows and columns in its constructor. If you subsequently give it too many objects to manage, it adds extra columns to make the objects fit. You can also set the number of rows or columns to 0, which means that you don't care how many elements the layout manager packs in that dimension. For example, GridLayout(2,0) requests a layout with two rows and an unlimited number of columns; if you put ten components into this layout, you'll get two rows of five columns each.[1]

[1] Calling new GridLayout(0, 0) causes a runtime exception; either the rows or columns parameter must be greater than zero.

The following example sets a GridLayout with three rows and two columns as its layout manager:

     //file: Grid.java     import java.awt.*;     import java.awt.event.*;     import javax.swing.*;     public class Grid extends JPanel {       public Grid(  ) {         setLayout(new GridLayout(3, 2));         add(new JButton("One"));         add(new JButton("Two"));         add(new JButton("Three"));         add(new JButton("Four"));         add(new JButton("Five"));       }       public static void main(String[] args) {         JFrame frame = new JFrame("Grid");         frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );         frame.setSize(200, 200);         frame.setLocation(200, 200);         frame.setContentPane(new Grid(  ));         frame.setVisible(true);       }     } 

The results are shown in Figure 19-3.

Figure 19-3. A grid layout


The five buttons are laid out, in order, from left to right, top to bottom, with one empty spot.



    Learning Java
    Learning Java
    ISBN: 0596008732
    EAN: 2147483647
    Year: 2005
    Pages: 262

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net