All Packages Class Hierarchy This Package Previous Next Index
Class java.awt.GridBagLayout
java.lang.Object
|
+----java.awt.GridBagLayout
- public class GridBagLayout
- extends Object
- implements LayoutManager2, Serializable
The GridBagLayout
class is a flexible layout
manager that aligns components vertically and horizontally,
without requiring that the components be of the same size.
Each GridBagLayout
object maintains a dynamic
rectangular grid of cells, with each component occupying
one or more cells, called its display area.
Each component managed by a grid bag layout is associated
with an instance of
GridBagConstraints
that specifies how the component is laid out within its display area.
How a GridBagLayout
object places a set of components
depends on the GridBagConstraints
object associated
with each component, and on the minimum size
and the preferred size of the components' containers.
To use a grid bag layout effectively, you must customize one or more
of the GridBagConstraints
objects that are associated
with its components. You customize a GridBagConstraints
object by setting one or more of its instance variables:
gridx
,
gridy
- Specifies the cell at the upper left of the component's display area,
where the upper-left-most cell has address
gridx = 0
,
gridy = 0
.
Use GridBagConstraints.RELATIVE
(the default value)
to specify that the component be just placed
just to the right of (for gridx
)
or just below (for gridy
)
the component that was added to the container
just before this component was added.
gridwidth
,
gridheight
- Specifies the number of cells in a row (for
gridwidth
)
or column (for gridheight
)
in the component's display area.
The default value is 1.
Use GridBagConstraints.REMAINDER
to specify
that the component be the last one in its row (for gridwidth
)
or column (for gridheight
).
Use GridBagConstraints.RELATIVE
to specify
that the component be the next to last one
in its row (for gridwidth
)
or column (for gridheight
).
fill
- Used when the component's display area
is larger than the component's requested size
to determine whether (and how) to resize the component.
Possible values are
GridBagConstraints.NONE
(the default),
GridBagConstraints.HORIZONTAL
(make the component wide enough to fill its display area
horizontally, but don't change its height),
GridBagConstraints.VERTICAL
(make the component tall enough to fill its display area
vertically, but don't change its width), and
GridBagConstraints.BOTH
(make the component fill its display area entirely).
ipadx
,
ipady
- Specifies the component's internal padding within the layout,
how much to add to the minimum size of the component.
The width of the component will be at least its minimum width
plus
(ipadx * 2)
pixels (since the padding
applies to both sides of the component). Similarly, the height of
the component will be at least the minimum height plus
(ipady * 2)
pixels.
insets
- Specifies the component's external padding, the minimum
amount of space between the component and the edges of its display area.
anchor
- Used when the component is smaller than its display area
to determine where (within the display area) to place the component.
Valid values are
GridBagConstraints.CENTER
(the default),
GridBagConstraints.NORTH
,
GridBagConstraints.NORTHEAST
,
GridBagConstraints.EAST
,
GridBagConstraints.SOUTHEAST
,
GridBagConstraints.SOUTH
,
GridBagConstraints.SOUTHWEST
,
GridBagConstraints.WEST
, and
GridBagConstraints.NORTHWEST
.
weightx
,
weighty
- Used to determine how to distribute space, which is
important for specifying resizing behavior.
Unless you specify a weight for at least one component
in a row (
weightx
) and column (weighty
),
all the components clump together in the center of their container.
This is because when the weight is zero (the default),
the GridBagLayout
object puts any extra space
between its grid of cells and the edges of the container.
The following figure shows ten components (all buttons)
managed by a grid bag layout:
Each of the ten components has the fill
field
of its associated GridBagConstraints
object
set to GridBagConstraints.BOTH
.
In addition, the components have the following non-default constraints:
- Button1, Button2, Button3:
weightx = 1.0
- Button4:
weightx = 1.0
,
gridwidth = GridBagConstraints.REMAINDER
- Button5:
gridwidth = GridBagConstraints.REMAINDER
- Button6:
gridwidth = GridBagConstraints.RELATIVE
- Button7:
gridwidth = GridBagConstraints.REMAINDER
- Button8:
gridheight = 2
,
weighty = 1.0
- Button9, Button 10:
gridwidth = GridBagConstraints.REMAINDER
Here is the code that implements the example shown above:
import java.awt.*;
import java.util.*;
import java.applet.Applet;
public class GridBagEx1 extends Applet {
protected void makebutton(String name,
GridBagLayout gridbag,
GridBagConstraints c) {
Button button = new Button(name);
gridbag.setConstraints(button, c);
add(button);
}
public void init() {
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
setFont(new Font("Helvetica", Font.PLAIN, 14));
setLayout(gridbag);
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
makebutton("Button1", gridbag, c);
makebutton("Button2", gridbag, c);
makebutton("Button3", gridbag, c);
c.gridwidth = GridBagConstraints.REMAINDER; //end row
makebutton("Button4", gridbag, c);
c.weightx = 0.0; //reset to the default
makebutton("Button5", gridbag, c); //another row
c.gridwidth = GridBagConstraints.RELATIVE; //next-to-last in row
makebutton("Button6", gridbag, c);
c.gridwidth = GridBagConstraints.REMAINDER; //end row
makebutton("Button7", gridbag, c);
c.gridwidth = 1; //reset to the default
c.gridheight = 2;
c.weighty = 1.0;
makebutton("Button8", gridbag, c);
c.weighty = 0.0; //reset to the default
c.gridwidth = GridBagConstraints.REMAINDER; //end row
c.gridheight = 1; //reset to the default
makebutton("Button9", gridbag, c);
makebutton("Button10", gridbag, c);
setSize(300, 100);
}
public static void main(String args[]) {
Frame f = new Frame("GridBag Layout Example");
GridBagEx1 ex1 = new GridBagEx1();
ex1.init();
f.add("Center", ex1);
f.pack();
f.setSize(f.getPreferredSize());
f.show();
}
}
- See Also:
- GridBagConstraints
-
columnWeights
-
-
columnWidths
-
-
comptable
-
-
defaultConstraints
-
-
layoutInfo
-
-
MAXGRIDSIZE
- The maximum number of grid positions (both horizontally and
vertically) that can be laid out by the grid bag layout.
-
MINSIZE
- The smallest grid that can be laid out by the grid bag layout.
-
PREFERREDSIZE
-
-
rowHeights
-
-
rowWeights
-
-
GridBagLayout()
- Creates a grid bag layout manager.
-
addLayoutComponent(Component, Object)
- Adds the specified component to the layout, using the specified
constraint object.
-
addLayoutComponent(String, Component)
- Adds the specified component with the specified name to the layout.
-
AdjustForGravity(GridBagConstraints, Rectangle)
-
-
ArrangeGrid(Container)
-
-
getConstraints(Component)
- Gets the constraints for the specified component.
-
getLayoutAlignmentX(Container)
- Returns the alignment along the x axis.
-
getLayoutAlignmentY(Container)
- Returns the alignment along the y axis.
-
getLayoutDimensions()
- Determines column widths and row heights for the layout grid.
-
GetLayoutInfo(Container, int)
- Print the layout constraints.
-
getLayoutOrigin()
- Determines the origin of the layout grid.
-
getLayoutWeights()
- Determines the weights of the layout grid's columns and rows.
-
GetMinSize(Container, GridBagLayoutInfo)
-
-
invalidateLayout(Container)
- Invalidates the layout, indicating that if the layout manager
has cached information it should be discarded.
-
layoutContainer(Container)
-
Lays out the specified container using this grid bag layout.
-
location(int, int)
- Determines which cell in the layout grid contains the point
specified by
(x, y)
.
-
lookupConstraints(Component)
- Retrieves the constraints for the specified component.
-
maximumLayoutSize(Container)
- Returns the maximum dimensions for this layout given the components
in the specified target container.
-
minimumLayoutSize(Container)
- Determines the minimum size of the
target
container
using this grid bag layout.
-
preferredLayoutSize(Container)
-
Determines the preferred size of the
target
container using this grid bag layout.
-
removeLayoutComponent(Component)
- Removes the specified component from this layout.
-
setConstraints(Component, GridBagConstraints)
- Sets the constraints for the specified component in this layout.
-
toString()
- Returns a string representation of this grid bag layout's values.
MAXGRIDSIZE
protected static final int MAXGRIDSIZE
- The maximum number of grid positions (both horizontally and
vertically) that can be laid out by the grid bag layout.
MINSIZE
protected static final int MINSIZE
- The smallest grid that can be laid out by the grid bag layout.
PREFERREDSIZE
protected static final int PREFERREDSIZE
comptable
protected Hashtable comptable
defaultConstraints
protected GridBagConstraints defaultConstraints
layoutInfo
protected GridBagLayoutInfo layoutInfo
columnWidths
public int columnWidths[]
rowHeights
public int rowHeights[]
columnWeights
public double columnWeights[]
rowWeights
public double rowWeights[]
GridBagLayout
public GridBagLayout()
- Creates a grid bag layout manager.
setConstraints
public void setConstraints(Component comp,
GridBagConstraints constraints)
- Sets the constraints for the specified component in this layout.
- Parameters:
- comp - the component to be modified.
- constraints - the constraints to be applied.
getConstraints
public GridBagConstraints getConstraints(Component comp)
- Gets the constraints for the specified component. A copy of
the actual
GridBagConstraints
object is returned.
- Parameters:
- comp - the component to be queried.
- Returns:
- the constraint for the specified component in this
grid bag layout; a copy of the actual constraint
object is returned.
lookupConstraints
protected GridBagConstraints lookupConstraints(Component comp)
- Retrieves the constraints for the specified component.
The return value is not a copy, but is the actual
GridBagConstraints
object used by the layout mechanism.
- Parameters:
- comp - the component to be queried
- Returns:
- the contraints for the specified component.
getLayoutOrigin
public Point getLayoutOrigin()
- Determines the origin of the layout grid.
Most applications do not call this method directly.
- Returns:
- the origin of the cell in the top-left
corner of the layout grid.
getLayoutDimensions
public int[][] getLayoutDimensions()
- Determines column widths and row heights for the layout grid.
Most applications do not call this method directly.
- Returns:
- an array of two arrays, containing the widths
of the layout columns and
the heights of the layout rows.
getLayoutWeights
public double[][] getLayoutWeights()
- Determines the weights of the layout grid's columns and rows.
Weights are used to calculate how much a given column or row
stretches beyond its preferred size, if the layout has extra
room to fill.
Most applications do not call this method directly.
- Returns:
- an array of two arrays, representing the
horizontal weights of the layout columns
and the vertical weights of the layout rows.
location
public Point location(int x,
int y)
- Determines which cell in the layout grid contains the point
specified by
(x, y)
. Each cell is identified
by its column index (ranging from 0 to the number of columns
minus 1) and its row index (ranging from 0 to the number of
rows minus 1).
If the (x, y)
point lies
outside the grid, the following rules are used.
The column index is returned as zero if x
lies to the
left of the layout, and as the number of columns if x
lies
to the right of the layout. The row index is returned as zero
if y
lies above the layout,
and as the number of rows if y
lies
below the layout.
- Parameters:
- x - the x coordinate of a point.
- y - the y coordinate of a point.
- Returns:
- an ordered pair of indexes that indicate which cell
in the layout grid contains the point
(x, y).
addLayoutComponent
public void addLayoutComponent(String name,
Component comp)
- Adds the specified component with the specified name to the layout.
- Parameters:
- name - the name of the component.
- comp - the component to be added.
addLayoutComponent
public void addLayoutComponent(Component comp,
Object constraints)
- Adds the specified component to the layout, using the specified
constraint object.
- Parameters:
- comp - the component to be added.
- constraints - an object that determines how
the component is added to the layout.
removeLayoutComponent
public void removeLayoutComponent(Component comp)
- Removes the specified component from this layout.
Most applications do not call this method directly.
- Parameters:
- comp - the component to be removed.
- See Also:
- remove, removeAll
preferredLayoutSize
public Dimension preferredLayoutSize(Container parent)
- Determines the preferred size of the
target
container using this grid bag layout.
Most applications do not call this method directly.
- Parameters:
- target - the container in which to do the layout.
- See Also:
- getPreferredSize
minimumLayoutSize
public Dimension minimumLayoutSize(Container parent)
- Determines the minimum size of the
target
container
using this grid bag layout.
Most applications do not call this method directly.
- Parameters:
- target - the container in which to do the layout.
- See Also:
- doLayout
maximumLayoutSize
public Dimension maximumLayoutSize(Container target)
- Returns the maximum dimensions for this layout given the components
in the specified target container.
- Parameters:
- target - the component which needs to be laid out
- See Also:
- Container, minimumLayoutSize, preferredLayoutSize
getLayoutAlignmentX
public float getLayoutAlignmentX(Container parent)
- Returns the alignment along the x axis. This specifies how
the component would like to be aligned relative to other
components. The value should be a number between 0 and 1
where 0 represents alignment along the origin, 1 is aligned
the furthest away from the origin, 0.5 is centered, etc.
getLayoutAlignmentY
public float getLayoutAlignmentY(Container parent)
- Returns the alignment along the y axis. This specifies how
the component would like to be aligned relative to other
components. The value should be a number between 0 and 1
where 0 represents alignment along the origin, 1 is aligned
the furthest away from the origin, 0.5 is centered, etc.
invalidateLayout
public void invalidateLayout(Container target)
- Invalidates the layout, indicating that if the layout manager
has cached information it should be discarded.
layoutContainer
public void layoutContainer(Container parent)
- Lays out the specified container using this grid bag layout.
This method reshapes components in the specified container in
order to satisfy the contraints of this
GridBagLayout
object.
Most applications do not call this method directly.
- Parameters:
- parent - the container in which to do the layout.
- See Also:
- Container, doLayout
toString
public String toString()
- Returns a string representation of this grid bag layout's values.
- Returns:
- a string representation of this grid bag layout.
- Overrides:
- toString in class Object
GetLayoutInfo
protected GridBagLayoutInfo GetLayoutInfo(Container parent,
int sizeflag)
- Print the layout constraints. Useful for debugging.
AdjustForGravity
protected void AdjustForGravity(GridBagConstraints constraints,
Rectangle r)
GetMinSize
protected Dimension GetMinSize(Container parent,
GridBagLayoutInfo info)
ArrangeGrid
protected void ArrangeGrid(Container parent)
All Packages Class Hierarchy This Package Previous Next Index
Submit a bug or feature