Class GraphPaperLayout
- All Implemented Interfaces:
LayoutManager
,LayoutManager2
GraphPaperLayout
class is a layout manager that
lays out a container's components in a rectangular grid, similar
to GridLayout. Unlike GridLayout, however, components can take
up multiple rows and/or columns. The layout manager acts as a
sheet of graph paper. When a component is added to the layout
manager, the location and relative size of the component are
simply supplied by the constraints as a Rectangle.
import java.awt.*;
import java.applet.Applet;
public class ButtonGrid extends Applet {
public void init() {
setLayout(new GraphPaperLayout(new Dimension(5,5)));
// Add a 1x1 Rect at (0,0)
add(new Button("1"), new Rectangle(0,0,1,1));
// Add a 2x1 Rect at (2,0)
add(new Button("2"), new Rectangle(2,0,2,1));
// Add a 1x2 Rect at (1,1)
add(new Button("3"), new Rectangle(1,1,1,2));
// Add a 2x2 Rect at (3,2)
add(new Button("4"), new Rectangle(3,2,2,2));
// Add a 1x1 Rect at (0,4)
add(new Button("5"), new Rectangle(0,4,1,1));
// Add a 1x2 Rect at (2,3)
add(new Button("6"), new Rectangle(2,3,1,2));
}
}
- Author:
- Michael Martak
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Class EditPanel _more_static class
Class Location _more_ -
Constructor Summary
ConstructorsConstructorDescriptionCreates a graph paper layout with a default of a 1 x 1 graph, with no vertical or horizontal padding.GraphPaperLayout
(Dimension gridSize) Creates a graph paper layout with the given grid size, with no vertical or horizontal padding.GraphPaperLayout
(Dimension gridSize, int hgap, int vgap) Creates a graph paper layout with the given grid size and padding. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addLayoutComponent
(Component comp, Object constraints) Adds the specified component to the layout, using the specified constraint object.void
addLayoutComponent
(String name, Component comp) Adds the specified component with the specified name to the layout.static Dimension
getDimensions
(List locations) _more_protected Dimension
getLargestCellSize
(Container parent, boolean isPreferred) Algorithm for calculating the largest minimum or preferred cell size.float
getLayoutAlignmentX
(Container target) Returns the alignment along the x axis.float
getLayoutAlignmentY
(Container target) Returns the alignment along the y axis.protected Dimension
getLayoutSize
(Container parent, boolean isPreferred) Algorithm for calculating layout size (minimum or preferred).void
invalidateLayout
(Container target) Invalidates the layout, indicating that if the layout manager has cached information it should be discarded.static JComponent
_more_void
layoutContainer
(Container parent) Lays out the container in the specified container.static void
_more_maximumLayoutSize
(Container target) Returns the maximum size of this component.minimumLayoutSize
(Container parent) Calculates the minimum size dimensions for the specified panel given the components in the specified parent container.preferredLayoutSize
(Container parent) Calculates the preferred size dimensions for the specified panel given the components in the specified parent container.void
Removes the specified component from the layout.void
setConstraints
(Component comp, Rectangle constraints) _more_void
setGridSize
(int width, int height) Set the size of the graph paper in logical units (n x m)void
Set the size of the graph paper in logical units (n x m)static void
showDialog
(List locations, String title) _more_
-
Constructor Details
-
GraphPaperLayout
public GraphPaperLayout()Creates a graph paper layout with a default of a 1 x 1 graph, with no vertical or horizontal padding. -
GraphPaperLayout
Creates a graph paper layout with the given grid size, with no vertical or horizontal padding.- Parameters:
gridSize
-
-
GraphPaperLayout
Creates a graph paper layout with the given grid size and padding.- Parameters:
gridSize
- size of the graph paper in logical units (n x m)hgap
- horizontal paddingvgap
- vertical padding
-
-
Method Details
-
getGridSize
- Returns:
- the size of the graph paper in logical units (n x m)
-
setGridSize
Set the size of the graph paper in logical units (n x m)- Parameters:
d
-
-
setGridSize
public void setGridSize(int width, int height) Set the size of the graph paper in logical units (n x m)- Parameters:
width
-height
-
-
setConstraints
_more_- Parameters:
comp
-constraints
-
-
addLayoutComponent
Adds the specified component with the specified name to the layout. This does nothing in GraphPaperLayout, since constraints are required.- Specified by:
addLayoutComponent
in interfaceLayoutManager
- Parameters:
name
-comp
-
-
removeLayoutComponent
Removes the specified component from the layout.- Specified by:
removeLayoutComponent
in interfaceLayoutManager
- Parameters:
comp
- the component to be removed
-
preferredLayoutSize
Calculates the preferred size dimensions for the specified panel given the components in the specified parent container.- Specified by:
preferredLayoutSize
in interfaceLayoutManager
- Parameters:
parent
- the component to be laid out- Returns:
- _more_
- See Also:
-
minimumLayoutSize
Calculates the minimum size dimensions for the specified panel given the components in the specified parent container.- Specified by:
minimumLayoutSize
in interfaceLayoutManager
- Parameters:
parent
- the component to be laid out- Returns:
- _more_
- See Also:
-
getLayoutSize
Algorithm for calculating layout size (minimum or preferred).The width of a graph paper layout is the largest cell width (calculated in
getLargestCellSize()
times the number of columns, plus the horizontal padding times the number of columns plus one, plus the left and right insets of the target container.The height of a graph paper layout is the largest cell height (calculated in
getLargestCellSize()
times the number of rows, plus the vertical padding times the number of rows plus one, plus the top and bottom insets of the target container.- Parameters:
parent
- the container in which to do the layout.isPreferred
- true for calculating preferred size, false for calculating minimum size.- Returns:
- the dimensions to lay out the subcomponents of the specified container.
- See Also:
-
getLargestCellSize
Algorithm for calculating the largest minimum or preferred cell size.Largest cell size is calculated by getting the applicable size of each component and keeping the maximum value, dividing the component's width by the number of columns it is specified to occupy and dividing the component's height by the number of rows it is specified to occupy.
- Parameters:
parent
- the container in which to do the layout.isPreferred
- true for calculating preferred size, false for calculating minimum size.- Returns:
- the largest cell size required.
-
layoutContainer
Lays out the container in the specified container.- Specified by:
layoutContainer
in interfaceLayoutManager
- Parameters:
parent
- the component which needs to be laid out
-
addLayoutComponent
Adds the specified component to the layout, using the specified constraint object.- Specified by:
addLayoutComponent
in interfaceLayoutManager2
- Parameters:
comp
- the component to be addedconstraints
- where/how the component is added to the layout.
-
maximumLayoutSize
Returns the maximum size of this component.- Specified by:
maximumLayoutSize
in interfaceLayoutManager2
- Parameters:
target
-- Returns:
- _more_
- See Also:
-
getLayoutAlignmentX
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.- Specified by:
getLayoutAlignmentX
in interfaceLayoutManager2
- Parameters:
target
-- Returns:
- _more_
-
getLayoutAlignmentY
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.- Specified by:
getLayoutAlignmentY
in interfaceLayoutManager2
- Parameters:
target
-- Returns:
- _more_
-
invalidateLayout
Invalidates the layout, indicating that if the layout manager has cached information it should be discarded.- Specified by:
invalidateLayout
in interfaceLayoutManager2
- Parameters:
target
-
-
getDimensions
_more_- Parameters:
locations
- _more_- Returns:
- _more_
-
layout
_more_- Parameters:
locations
- _more_- Returns:
- _more_
-
showDialog
_more_- Parameters:
locations
- _more_title
- _more_
-
main
_more_- Parameters:
args
- _more_
-