public static class SpringLayout.Constraints extends Object
Constraints
object holds the
constraints that govern the way a component's size and position
change in a container controlled by a SpringLayout
.
A Constraints
object is
like a Rectangle
, in that it
has x
, y
,
width
, and height
properties.
In the Constraints
object, however,
these properties have
Spring
values instead of integers.
In addition,
a Constraints
object
can be manipulated as four edges
-- north, south, east, and west --
using the constraint
property.
The following formulas are always true
for a Constraints
object (here WEST and x
are synonyms, as are and NORTH and y
):
EAST = WEST + WIDTH SOUTH = NORTH + HEIGHT HORIZONTAL_CENTER = WEST + WIDTH/2 VERTICAL_CENTER = NORTH + HEIGHT/2 ABSOLUTE_BASELINE = NORTH + RELATIVE_BASELINE*
For example, if you have specified the WIDTH and WEST (X) location the EAST is calculated as WEST + WIDTH. If you instead specified the WIDTH and EAST locations the WEST (X) location is then calculated as EAST - WIDTH.
[RELATIVE_BASELINE is a private constraint that is set automatically when the SpringLayout.Constraints(Component) constructor is called or when a constraints object is registered with a SpringLayout object.]
Note: In this document,
operators represent methods
in the Spring
class.
For example, "a + b" is equal to
Spring.sum(a, b)
,
and "a - b" is equal to
Spring.sum(a, Spring.minus(b))
.
See the
Spring API documentation
for further details
of spring arithmetic.
Because a Constraints
object's properties --
representing its edges, size, and location -- can all be set
independently and yet are interrelated,
a Constraints
object can become over-constrained.
For example, if the WEST
, WIDTH
and
EAST
edges are all set, steps must be taken to ensure that
the first of the formulas above holds. To do this, the
Constraints
object throws away the least recently set
constraint so as to make the formulas hold.
Constructor and Description |
---|
Constraints()
Creates an empty
Constraints object. |
Constraints(Component c)
Creates a
Constraints object with
suitable x , y , width and
height springs for component, c . |
Constraints(Spring x,
Spring y)
Creates a
Constraints object with the
specified values for its
x and y properties. |
Constraints(Spring x,
Spring y,
Spring width,
Spring height)
Creates a
Constraints object with the
specified values for its
x , y , width ,
and height properties. |
Modifier and Type | Method and Description |
---|---|
Spring |
getConstraint(String edgeName)
Returns the value of the specified edge, which may be
a derived value, or even
null . |
Spring |
getHeight()
Returns the value of the
height property. |
Spring |
getWidth()
Returns the value of the
width property. |
Spring |
getX()
Returns the value of the
x property. |
Spring |
getY()
Returns the value of the
y property. |
void |
setConstraint(String edgeName,
Spring s)
Sets the spring controlling the specified edge.
|
void |
setHeight(Spring height)
Sets the
height property,
which controls the height of a component. |
void |
setWidth(Spring width)
Sets the
width property,
which controls the width of a component. |
void |
setX(Spring x)
Sets the
x property,
which controls the x value
of a component's location. |
void |
setY(Spring y)
Sets the
y property,
which controls the y value
of a component's location. |
public Constraints()
Constraints
object.public Constraints(Spring x, Spring y)
Constraints
object with the
specified values for its
x
and y
properties.
The height
and width
springs
have null
values.x
- the spring controlling the component's x valuey
- the spring controlling the component's y valuepublic Constraints(Spring x, Spring y, Spring width, Spring height)
Constraints
object with the
specified values for its
x
, y
, width
,
and height
properties.
Note: If the SpringLayout
class
encounters null
values in the
Constraints
object of a given component,
it replaces them with suitable defaults.x
- the spring value for the x
propertyy
- the spring value for the y
propertywidth
- the spring value for the width
propertyheight
- the spring value for the height
propertypublic Constraints(Component c)
Constraints
object with
suitable x
, y
, width
and
height
springs for component, c
.
The x
and y
springs are constant
springs initialised with the component's location at
the time this method is called. The width
and
height
springs are special springs, created by
the Spring.width()
and Spring.height()
methods, which track the size characteristics of the component
when they change.c
- the component whose characteristics will be reflected by this Constraints objectNullPointerException
- if c
is null.public void setX(Spring x)
x
property,
which controls the x
value
of a component's location.x
- the spring controlling the x
value
of a component's locationgetX()
,
SpringLayout.Constraints
public Spring getX()
x
property.x
value
of a component's locationsetX(javax.swing.Spring)
,
SpringLayout.Constraints
public void setY(Spring y)
y
property,
which controls the y
value
of a component's location.y
- the spring controlling the y
value
of a component's locationgetY()
,
SpringLayout.Constraints
public Spring getY()
y
property.y
value
of a component's locationsetY(javax.swing.Spring)
,
SpringLayout.Constraints
public void setWidth(Spring width)
width
property,
which controls the width of a component.width
- the spring controlling the width of this
Constraints
objectgetWidth()
,
SpringLayout.Constraints
public Spring getWidth()
width
property.setWidth(javax.swing.Spring)
,
SpringLayout.Constraints
public void setHeight(Spring height)
height
property,
which controls the height of a component.height
- the spring controlling the height of this Constraints
objectgetHeight()
,
SpringLayout.Constraints
public Spring getHeight()
height
property.setHeight(javax.swing.Spring)
,
SpringLayout.Constraints
public void setConstraint(String edgeName, Spring s)
SpringLayout.NORTH
,
SpringLayout.SOUTH
,
SpringLayout.EAST
,
SpringLayout.WEST
,
SpringLayout.HORIZONTAL_CENTER
,
SpringLayout.VERTICAL_CENTER
,
SpringLayout.BASELINE
,
SpringLayout.WIDTH
or
SpringLayout.HEIGHT
.
For any other String
value passed as the edge,
no action is taken. For a null
edge, a
NullPointerException
is thrown.
Note: This method can affect x
and y
values
previously set for this Constraints
.
edgeName
- the edge to be sets
- the spring controlling the specified edgeNullPointerException
- if edgeName
is null
getConstraint(java.lang.String)
,
SpringLayout.NORTH
,
SpringLayout.SOUTH
,
SpringLayout.EAST
,
SpringLayout.WEST
,
SpringLayout.HORIZONTAL_CENTER
,
SpringLayout.VERTICAL_CENTER
,
SpringLayout.BASELINE
,
SpringLayout.WIDTH
,
SpringLayout.HEIGHT
,
SpringLayout.Constraints
public Spring getConstraint(String edgeName)
null
.
The edge must have one of the following values:
SpringLayout.NORTH
,
SpringLayout.SOUTH
,
SpringLayout.EAST
,
SpringLayout.WEST
,
SpringLayout.HORIZONTAL_CENTER
,
SpringLayout.VERTICAL_CENTER
,
SpringLayout.BASELINE
,
SpringLayout.WIDTH
or
SpringLayout.HEIGHT
.
For any other String
value passed as the edge,
null
will be returned. Throws
NullPointerException
for a null
edge.edgeName
- the edge whose value
is to be returnednull
NullPointerException
- if edgeName
is null
setConstraint(java.lang.String, javax.swing.Spring)
,
SpringLayout.NORTH
,
SpringLayout.SOUTH
,
SpringLayout.EAST
,
SpringLayout.WEST
,
SpringLayout.HORIZONTAL_CENTER
,
SpringLayout.VERTICAL_CENTER
,
SpringLayout.BASELINE
,
SpringLayout.WIDTH
,
SpringLayout.HEIGHT
,
SpringLayout.Constraints
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2023, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.