public class SpringLayout extends Object implements LayoutManager2
Spring
s. You can attach a Spring for each edge of a component and
link it to an edge of a different component. For example, you can say,
the northern edge of component A should be attached to the southern edge
of component B, and the space between them should be something between
x and y pixels, and preferably z pixels.
While quite simple, this layout manager can be used to emulate most other layout managers, and can also be used to solve some layout problems, which would be hard to solve with other layout managers.
Modifier and Type | Class and Description |
---|---|
static class |
SpringLayout.Constraints
The constraints that define the relationships between components.
|
Modifier and Type | Field and Description |
---|---|
static String |
EAST
The right edge of a component.
|
static String |
NORTH
The top edge of a component.
|
static String |
SOUTH
The bottom edge of a component.
|
static String |
WEST
The left edge of a component.
|
Constructor and Description |
---|
SpringLayout()
Creates a new SpringLayout.
|
Modifier and Type | Method and Description |
---|---|
void |
addLayoutComponent(Component component,
Object constraint)
Adds a layout component and a constraint object to this layout.
|
void |
addLayoutComponent(String name,
Component c)
Adds a layout component and a constraint object to this layout.
|
Spring |
getConstraint(String edgeName,
Component c)
Returns the constraint of the edge named by
edgeName . |
SpringLayout.Constraints |
getConstraints(Component c)
Returns the
SpringLayout.Constraints object associated with the specified
component. |
float |
getLayoutAlignmentX(Container p)
Returns the X alignment of the Container
p . |
float |
getLayoutAlignmentY(Container p)
Returns the Y alignment of the Container
p . |
void |
invalidateLayout(Container p)
Recalculate a possibly cached layout.
|
void |
layoutContainer(Container p)
Lays out the container
p . |
Dimension |
maximumLayoutSize(Container p)
Calculates the maximum size of the layed out container.
|
Dimension |
minimumLayoutSize(Container p)
Calculates the minimum size of the layed out container.
|
Dimension |
preferredLayoutSize(Container p)
Calculates the preferred size of the layed out container.
|
void |
putConstraint(String e1,
Component c1,
int pad,
String e2,
Component c2)
Attaches the edge
e1 of component c1 to
the edge e2 of component c2 width the
fixed strut pad . |
void |
putConstraint(String e1,
Component c1,
Spring s,
String e2,
Component c2)
|
void |
removeLayoutComponent(Component c)
Removes a layout component.
|
public static final String EAST
public static final String NORTH
public static final String SOUTH
public static final String WEST
public SpringLayout()
public void addLayoutComponent(Component component, Object constraint)
Container
s add
method.addLayoutComponent
in interface LayoutManager2
component
- the component to be added.constraint
- the constraint to be set.public void addLayoutComponent(String name, Component c)
Container
s add
method. This method does nothing, since SpringLayout does not manage
String-indexed components.addLayoutComponent
in interface LayoutManager
name
- the name.c
- the component to be added.public Spring getConstraint(String edgeName, Component c)
edgeName
.public SpringLayout.Constraints getConstraints(Component c)
SpringLayout.Constraints
object associated with the specified
component.c
- the component for which to determine the constraint.SpringLayout.Constraints
object associated with the specified
component.public float getLayoutAlignmentX(Container p)
p
.getLayoutAlignmentX
in interface LayoutManager2
p
- the Container
for which to determine the X
alignment.public float getLayoutAlignmentY(Container p)
p
.getLayoutAlignmentY
in interface LayoutManager2
p
- the Container
for which to determine the Y
alignment.public void invalidateLayout(Container p)
invalidateLayout
in interface LayoutManager2
p
- the target containerpublic void layoutContainer(Container p)
p
.layoutContainer
in interface LayoutManager
p
- the container to be laid out.public Dimension maximumLayoutSize(Container p)
maximumLayoutSize
in interface LayoutManager2
p
- the container to be laid out.Component.getMaximumSize()
public Dimension minimumLayoutSize(Container p)
minimumLayoutSize
in interface LayoutManager
p
- the container to be laid out.LayoutManager.preferredLayoutSize(Container)
public Dimension preferredLayoutSize(Container p)
preferredLayoutSize
in interface LayoutManager
p
- the container to be laid out.LayoutManager.minimumLayoutSize(Container)
public void putConstraint(String e1, Component c1, int pad, String e2, Component c2)
e1
of component c1
to
the edge e2
of component c2
width the
fixed strut pad
.e1
- the edge of component 1.c1
- the component 1.pad
- the space between the components in pixels.e2
- the edge of component 2.c2
- the component 2.public void putConstraint(String e1, Component c1, Spring s, String e2, Component c2)
e1
- the edge of component 1.c1
- the component 1.s
- the space between the components as a Spring
object.e2
- the edge of component 2.c2
- the component 2.public void removeLayoutComponent(Component c)
removeLayoutComponent
in interface LayoutManager
c
- the layout component to remove.