java.lang.Object
org.gjt.sp.jedit.gui.VariableGridLayout
- All Implemented Interfaces:
LayoutManager
,LayoutManager2
,Serializable
A rectangular grid layout manager with variable cell sizes
The container is divided into rectangles, and one component is placed
in each rectangle. Each row is as large as the largest component in
that row, and each column is as wide as the widest component in
that column.
This behavior is basically the same as in
java.awt.GridLayout
, but with different row heights and
column widths for each row/column.
For example, the following is an applet that lays out six buttons into three rows and two columns:
import java.awt.*; import java.applet.Applet; public class ButtonGrid extends Applet { public void init() { setLayout(new VariableGridLayout(VariableGridLayout.FIXED_NUM_COLUMNS, 2)); add(new Button("1")); add(new Button("2")); add(new Button("3")); add(new Button("4")); add(new Button("5")); add(new Button("6")); } }
Programmer's remark: VariableGridLayout could be faster, if it would
reside in the package java.awt, because then it could access some
package private fields of Container
or
Component
. Instead, it has to call
Component.getSize()
,
which allocates memory on the heap.
Todo:
- Ability to span components over more than one cell horizontally and vertically.
- Version:
- 1.5
- Author:
- Dirk Moebius, Björn "Vampire" Kautler
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
static final int
-
Constructor Summary
ConstructorDescriptionCreates a variable grid layout manager with mode FIXED_NUM_ROWS, number of rows == 1, zero horizontal and vertical gap, and zero distance to borders.VariableGridLayout
(int mode, int size) Creates a variable grid layout manager with the specified mode and size, zero horizontal and vertical gap, and zero distance to borders.VariableGridLayout
(int mode, int size, int hgap, int vgap) Creates a variable grid layout manager with the specified mode, size, horizontal and vertical gap, and zero distance to borders.VariableGridLayout
(int mode, int size, int hgap, int vgap, boolean takeSizesIntoAccount) Creates a variable grid layout manager with the specified mode, size, horizontal and vertical gap, eventually taking minimum and maximum sizes into account when distributing free space, depending on takeSizesIntoAccount and zero distance to borders.VariableGridLayout
(int mode, int size, int hgap, int vgap, boolean takeSizesIntoAccount, Insets distanceToBorders) Creates a variable grid layout manager with the specified mode, size, horizontal and vertical gap, eventually taking minimum and maximum sizes into account when distributing free space, depending on takeSizesIntoAccount and the specified distance to the borders. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addLayoutComponent
(Component component, Object constraints) Not used in this class.void
addLayoutComponent
(String name, Component component) Not used in this class.float
getLayoutAlignmentX
(Container container) Always returns 0.5.float
getLayoutAlignmentY
(Container container) Always returns 0.5.void
invalidateLayout
(Container container) void
layoutContainer
(Container parent) maximumLayoutSize
(Container parent) minimumLayoutSize
(Container parent) preferredLayoutSize
(Container parent) void
removeLayoutComponent
(Component component) Not used in this class.toString()
Returns the string representation of this variable grid layout's values.
-
Field Details
-
FIXED_NUM_ROWS
public static final int FIXED_NUM_ROWS- See Also:
-
FIXED_NUM_COLUMNS
public static final int FIXED_NUM_COLUMNS- See Also:
-
-
Constructor Details
-
VariableGridLayout
public VariableGridLayout(int mode, int size, int hgap, int vgap, boolean takeSizesIntoAccount, Insets distanceToBorders) Creates a variable grid layout manager with the specified mode, size, horizontal and vertical gap, eventually taking minimum and maximum sizes into account when distributing free space, depending on takeSizesIntoAccount and the specified distance to the borders.- Parameters:
mode
- The mode in which to operate. Either FIXED_NUM_ROWS or FIXED_NUM_COLUMNSsize
- The amount of rows for mode FIXED_NUM_ROWS or the amount of columns for mode FIXED_NUM_COLUMNS (>0)hgap
- The horizontal space between cells (>=0)vgap
- The vertical space between cells (>=0)takeSizesIntoAccount
- Whether to take minimum and maximum sizes into account when distributing free space Javier Diaz Soto (jbds) warns in #2997417 that this may cause gui freeze and provides a patchdistanceToBorders
- The distances to the borders- Throws:
IllegalArgumentException
- if mode is not either FIXED_NUM_ROWS or FIXED_NUM_COLUMNS or size is <= 0 or hgap or vgap is < 0
-
VariableGridLayout
public VariableGridLayout(int mode, int size, int hgap, int vgap, boolean takeSizesIntoAccount) Creates a variable grid layout manager with the specified mode, size, horizontal and vertical gap, eventually taking minimum and maximum sizes into account when distributing free space, depending on takeSizesIntoAccount and zero distance to borders.- Parameters:
mode
- The mode in which to operate. Either FIXED_NUM_ROWS or FIXED_NUM_COLUMNSsize
- The amount of rows for mode FIXED_NUM_ROWS or the amount of columns for mode FIXED_NUM_COLUMNS (>0)hgap
- The horizontal space between cells (>=0)vgap
- The vertical space between cells (>=0)takeSizesIntoAccount
- Whether to take minimum and maximum sizes into account when distributing free space Javier Diaz Soto (jbds) warns in #2997417 that this may cause gui freeze and provides a patch- Throws:
IllegalArgumentException
- if mode is not either FIXED_NUM_ROWS or FIXED_NUM_COLUMNS or size is <= 0 or hgap or vgap is < 0
-
VariableGridLayout
public VariableGridLayout(int mode, int size, int hgap, int vgap) Creates a variable grid layout manager with the specified mode, size, horizontal and vertical gap, and zero distance to borders. The minimum and maximum Component sizes are not taken into account when distributing free space.- Parameters:
mode
- The mode in which to operate. Either FIXED_NUM_ROWS or FIXED_NUM_COLUMNSsize
- The amount of rows for mode FIXED_NUM_ROWS or the amount of columns for mode FIXED_NUM_COLUMNShgap
- The horizontal space between cellsvgap
- The vertical space between cells- Throws:
IllegalArgumentException
- if mode is not either FIXED_NUM_ROWS or FIXED_NUM_COLUMNS or size is<= 0 or hgap or vgap is < 0
-
VariableGridLayout
public VariableGridLayout(int mode, int size) Creates a variable grid layout manager with the specified mode and size, zero horizontal and vertical gap, and zero distance to borders. Does not take minimum and maximum Component sizes into account when distributing free space.- Parameters:
mode
- The mode in which to operate. Either FIXED_NUM_ROWS or FIXED_NUM_COLUMNSsize
- The amount of rows for mode FIXED_NUM_ROWS or the amount of columns for mode FIXED_NUM_COLUMNS- Throws:
IllegalArgumentException
- if mode is not either FIXED_NUM_ROWS or FIXED_NUM_COLUMNS or size is <= 0
-
VariableGridLayout
public VariableGridLayout()Creates a variable grid layout manager with mode FIXED_NUM_ROWS, number of rows == 1, zero horizontal and vertical gap, and zero distance to borders. Does not take minimum and maximum Component sizes into account when distributing free space.
-
-
Method Details
-
addLayoutComponent
Not used in this class.- Specified by:
addLayoutComponent
in interfaceLayoutManager
-
addLayoutComponent
Not used in this class.- Specified by:
addLayoutComponent
in interfaceLayoutManager2
-
removeLayoutComponent
Not used in this class.- Specified by:
removeLayoutComponent
in interfaceLayoutManager
-
getLayoutAlignmentX
Always returns 0.5.- Specified by:
getLayoutAlignmentX
in interfaceLayoutManager2
-
getLayoutAlignmentY
Always returns 0.5.- Specified by:
getLayoutAlignmentY
in interfaceLayoutManager2
-
preferredLayoutSize
- Specified by:
preferredLayoutSize
in interfaceLayoutManager
-
minimumLayoutSize
- Specified by:
minimumLayoutSize
in interfaceLayoutManager
-
maximumLayoutSize
- Specified by:
maximumLayoutSize
in interfaceLayoutManager2
-
layoutContainer
- Specified by:
layoutContainer
in interfaceLayoutManager
-
invalidateLayout
- Specified by:
invalidateLayout
in interfaceLayoutManager2
-
toString
Returns the string representation of this variable grid layout's values.
-