public class TableLayout
extends java.lang.Object
implements java.awt.LayoutManager2, java.io.Serializable
LayoutManager
that arranges
components into a two-dimensional grid. The capabilities are analogous
to those provide by the GridBagLayout
class, although
TableLayout
is considerably easier to use.
The constructor for the TableLayout
class takes the number
of rows and columns. Thus, the constructor call
new TableLayout(3, 5)
creates a new TableLayout
manager with three rows in the
vertical dimension and five columns across the page. Components are added
to the grid starting at the upper left, filling each horizontal row and
then moving on to the next row down after the current one is filled.
The TableLayout
manager also supports more fine-grained
control over the formatting of tables by allowing you to specify
constraints in the following form:
constraint
=
value
For example, if you want to specify that a component occupies two columns in the grid, you would use the constraint
"gridwidth=2"
Strings used as constraint objects can set several constraints at once by including multiple constraint/value pairs separated by spaces.
The TableLayout
class accepts all constraints supported
by GridBagLayout
. The most common constraints are shown
in the following table:
| ||||
| ||||
| ||||
| ||||
|
Modifier and Type | Field and Description |
---|---|
static int |
BOTH
Resize component in both directions
|
static int |
BOTTOM
Align table vertically at the bottom of its container
|
static int |
CENTER
Center table in the container
|
static int |
FILL
Expand table to fill its container
|
static int |
HORIZONTAL
Resize component in horizontal direction only
|
static int |
LEFT
Align table horizontally at the left of its container
|
static int |
NONE
Do not resize component
|
static int |
RIGHT
Align table horizontally at the right of its container
|
static int |
TOP
Align table vertically at the top of its container
|
static int |
VERTICAL
Resize component in vertical direction only
|
Constructor and Description |
---|
TableLayout()
Creates a new
TableLayout object with no limits on the number of
rows and columns. |
TableLayout(int rows,
int columns)
Creates a new
TableLayout object with the specified number of
rows and columns. |
TableLayout(int rows,
int columns,
int hgap,
int vgap)
Creates a new
TableLayout object with the specified row count,
column count, alignment, horizontal gap, and vertical gap. |
Modifier and Type | Method and Description |
---|---|
void |
addLayoutComponent(java.awt.Component comp,
java.lang.Object constraints)
Adds a component to the layout.
|
void |
addLayoutComponent(java.lang.String constraints,
java.awt.Component comp)
Adds a component to the layout.
|
int |
getColumnCount()
Returns the number of columns in the table.
|
TableConstraints |
getConstraints(java.awt.Component comp)
Returns a copy of the constraints requested for the specified component.
|
int |
getDefaultFill()
Returns the default fill parameter for components in the table.
|
int |
getHgap()
Returns the horizontal gap between components.
|
int |
getHorizontalAlignment()
Returns the horizontal alignment for the table.
|
float |
getLayoutAlignmentX(java.awt.Container target)
Returns the alignment along the x-axis as described in the
LayoutManager2 interface. |
float |
getLayoutAlignmentY(java.awt.Container target)
Returns the alignment along the y-axis as described in the
LayoutManager2 interface. |
int |
getRowCount()
Returns the number of rows in the table.
|
int |
getVerticalAlignment()
Returns the vertical alignment for the table.
|
int |
getVgap()
Returns the vertical gap between components.
|
void |
invalidateLayout(java.awt.Container target)
Indicates that the layout is no longer valid.
|
boolean |
isStrictGridBagModel()
Returns
true if this layout manager is treating multirow cells
exactly as GridBagLayout does. |
void |
layoutContainer(java.awt.Container target)
Lays out the components in the target container.
|
protected java.awt.GridBagConstraints |
lookupConstraints(java.awt.Component comp)
Returns the constraints object for the specified component.
|
protected TableConstraints |
lookupConstraints(java.awt.Component comp,
java.awt.Container target)
Returns the
TableConstraints object actually applied to the
specified component when it is laid out in the target container. |
java.awt.Dimension |
maximumLayoutSize(java.awt.Container target)
Calculates the maximum size for the
FrameLayout component when
laid out in the target container. |
java.awt.Dimension |
minimumLayoutSize(java.awt.Container target)
Calculates the minimum size for the
FrameLayout component when
laid out in the target container. |
java.awt.Dimension |
preferredLayoutSize(java.awt.Container target)
Calculates the preferred size for the
FrameLayout component when
laid out in the target container. |
void |
removeLayoutComponent(java.awt.Component comp)
Removes the specified component from the layout.
|
void |
setColumnCount(int columns)
Resets the number of columns in the table.
|
void |
setConstraints(java.awt.Component comp,
java.awt.GridBagConstraints constraints)
Sets the constraints for the component to a copy of the supplied constraints.
|
void |
setConstraints(java.awt.Component comp,
java.lang.String constraints)
Sets the constraints for the component to the constraints specified by the
string.
|
void |
setDefaultFill(int fill)
Sets the default fill parameter for components in the table.
|
void |
setHgap(int pixels)
Sets the horizontal gap between components.
|
void |
setHorizontalAlignment(int align)
Sets the horizontal alignment for the table.
|
void |
setRowCount(int rows)
Resets the number of rows in the table.
|
void |
setStrictGridBagModel(boolean flag)
Sets a flag indicating whether the layout manager should match the model used
in
GridBagLayout even when that interpretation seems wrong. |
void |
setVerticalAlignment(int align)
Sets the vertical alignment for the table.
|
void |
setVgap(int pixels)
Sets the vertical gap between components.
|
java.lang.String |
toString()
Creates a printable representation of the layout.
|
public static final int NONE
public static final int HORIZONTAL
public static final int VERTICAL
public static final int BOTH
public static final int CENTER
public static final int LEFT
public static final int RIGHT
public static final int TOP
public static final int BOTTOM
public static final int FILL
public TableLayout()
TableLayout
object with no limits on the number of
rows and columns.public TableLayout(int rows, int columns)
TableLayout
object with the specified number of
rows and columns.rows
- The number of rows, or 0 for no limitcolumns
- The number of columns, or 0 for no limitpublic TableLayout(int rows, int columns, int hgap, int vgap)
TableLayout
object with the specified row count,
column count, alignment, horizontal gap, and vertical gap.rows
- The number of rows, or 0 for no limitcolumns
- The number of columns, or 0 for no limithgap
- The horizontal gap between columnsvgap
- The vertical gap between rowspublic void setColumnCount(int columns)
columns
- The new number of columnspublic int getColumnCount()
public void setRowCount(int rows)
rows
- The new number of rowspublic int getRowCount()
public void setHorizontalAlignment(int align)
CENTER
, LEFT
, RIGHT
, and
FILL
.align
- The horizontal alignment for the tablepublic int getHorizontalAlignment()
public void setVerticalAlignment(int align)
CENTER
, TOP
, BOTTOM
, and
FILL
.align
- The vertical alignment for the tablepublic int getVerticalAlignment()
public void setDefaultFill(int fill)
NONE
, HORIZONTAL
, VERTICAL
, and
BOTH
.fill
- The default fill parameter for components in the tablepublic int getDefaultFill()
public void setHgap(int pixels)
pixels
- The gap between components in pixelspublic int getHgap()
public void setVgap(int pixels)
pixels
- The gap between components in pixelspublic int getVgap()
public void setStrictGridBagModel(boolean flag)
GridBagLayout
even when that interpretation seems wrong. The
differences show up in the following areas:
GridBagLayout
uses the
minimum layout size of the component to determine the size of each cell;
TableLayout
uses the preferred size. In practice, these two
values are often the same, but it seems that the preferred size makes
considerably more sense in terms of how this layout is used.
GridBagLayout
, each new row begins after the last multirow cell
in that row, even if there is space to its left. By default,
TableLayout
uses the HTML model in which the cells begin at the
left margin unless that column is itself already occupied.
flag
- true
to use a strict GridBagLayout
modelpublic boolean isStrictGridBagModel()
true
if this layout manager is treating multirow cells
exactly as GridBagLayout
does.true
if this manager is using the strict
GridBagLayout
modelpublic void setConstraints(java.awt.Component comp, java.awt.GridBagConstraints constraints)
comp
- The component to be constrainedconstraints
- The constraints object used to specify the layoutpublic void setConstraints(java.awt.Component comp, java.lang.String constraints)
comp
- The component to be constrainedconstraints
- A string specifying the constraintspublic TableConstraints getConstraints(java.awt.Component comp)
TableConstraints
so
that clients can use this class in preference to
GridBagConstraints
without needing a type cast.comp
- The component whose constraints are requestedpublic void addLayoutComponent(java.lang.String constraints, java.awt.Component comp)
LayoutManager
.addLayoutComponent
in interface java.awt.LayoutManager
constraints
- The constraint stringcomp
- The component to be addedpublic void removeLayoutComponent(java.awt.Component comp)
removeLayoutComponent
in interface java.awt.LayoutManager
comp
- The component to be removedpublic java.awt.Dimension preferredLayoutSize(java.awt.Container target)
FrameLayout
component when
laid out in the target
container.preferredLayoutSize
in interface java.awt.LayoutManager
target
- The container in which the layout is donepublic java.awt.Dimension minimumLayoutSize(java.awt.Container target)
FrameLayout
component when
laid out in the target
container.minimumLayoutSize
in interface java.awt.LayoutManager
target
- The container in which the layout is donepublic void layoutContainer(java.awt.Container target)
layoutContainer
in interface java.awt.LayoutManager
target
- The container in which the layout is donepublic void addLayoutComponent(java.awt.Component comp, java.lang.Object constraints)
TableLayout
class overrides
this method to allow for string constraints.addLayoutComponent
in interface java.awt.LayoutManager2
comp
- The component to be addedconstraints
- The constraint objectpublic java.awt.Dimension maximumLayoutSize(java.awt.Container target)
FrameLayout
component when
laid out in the target
container.maximumLayoutSize
in interface java.awt.LayoutManager2
target
- The container in which the layout is donepublic float getLayoutAlignmentX(java.awt.Container target)
LayoutManager2
interface.getLayoutAlignmentX
in interface java.awt.LayoutManager2
target
- The container in which the layout is donepublic float getLayoutAlignmentY(java.awt.Container target)
LayoutManager2
interface.getLayoutAlignmentY
in interface java.awt.LayoutManager2
target
- The container in which the layout is donepublic void invalidateLayout(java.awt.Container target)
invalidateLayout
in interface java.awt.LayoutManager2
target
- The container in which the layout is donepublic java.lang.String toString()
toString
in class java.lang.Object
protected java.awt.GridBagConstraints lookupConstraints(java.awt.Component comp)
comp
- The component to be constrainedprotected TableConstraints lookupConstraints(java.awt.Component comp, java.awt.Container target)
TableConstraints
object actually applied to the
specified component when it is laid out in the target container. In the
result of this method the values of the gridx
,
gridx
, gridwidth
, and gridheight
fields are filled in according to the actual position in the grid.comp
- The component to be constrainedtarget
- The container in which the layout is done