java.lang.Objectjava.awt.geom.RectangularShape
java.awt.geom.Rectangle2D
java.awt.Rectangle
All Implemented Interfaces:
Shape, java$io$Serializable, Cloneable
Direct Known Subclasses:
ComposedTextCaret, DefaultCaret, AWTCaret, BasicCaret
Rectangle
specifies an area in a coordinate space that is
enclosed by the Rectangle
object's upper-left point
{@code (x,y)}
in the coordinate space, its width, and its height.
A Rectangle
object's width
and
height
are public
fields. The constructors
that create a Rectangle
, and the methods that can modify
one, do not prevent setting a negative value for width or height.
A {@code Rectangle} whose width or height is exactly zero has location along those axes with zero dimension, but is otherwise considered empty. The #isEmpty method will return true for such a {@code Rectangle}. Methods which test if an empty {@code Rectangle} contains or intersects a point or rectangle will always return false if either dimension is zero. Methods which combine such a {@code Rectangle} with a point or rectangle will include the location of the {@code Rectangle} on that axis in the result as if the #add(Point) method were being called.
Methods which affect only the location of a {@code Rectangle} will operate on its location regardless of whether or not it has a negative or zero dimension along either axis.
Note that a {@code Rectangle} constructed with the default no-argument constructor will have dimensions of {@code 0x0} and therefore be empty. That {@code Rectangle} will still have a location of {@code (0,0)} and will contribute that location to the union and add operations. Code attempting to accumulate the bounds of a set of points should therefore initially construct the {@code Rectangle} with a specifically negative width and height or it should use the first point in the set to construct the {@code Rectangle}. For example:
Rectangle bounds = new Rectangle(0, 0, -1, -1); for (int i = 0; i < points.length; i++) { bounds.add(points[i]); }or if we know that the points array contains at least one point:
Rectangle bounds = new Rectangle(points[0]); for (int i = 1; i < points.length; i++) { bounds.add(points[i]); }
This class uses 32-bit integers to store its location and dimensions. Frequently operations may produce a result that exceeds the range of a 32-bit integer. The methods will calculate their results in a way that avoids any 32-bit overflow for intermediate results and then choose the best representation to store the final results back into the 32-bit fields which hold the location and dimensions. The location of the result will be stored into the #x and #y fields by clipping the true result to the nearest 32-bit value. The values stored into the #width and #height dimension fields will be chosen as the 32-bit values that encompass the largest part of the true result as possible. Generally this means that the dimension will be clipped independently to the range of 32-bit integers except that if the location had to be moved to store it into its pair of 32-bit fields then the dimensions will be adjusted relative to the "best representation" of the location. If the true result had a negative dimension and was therefore non-existant along one or both axes, the stored dimensions will be negative numbers in those axes. If the true result had a location that could be represented within the range of 32-bit integers, but zero dimension along one or both axes, then the stored dimensions will be zero in those axes.
Sami
- Shaio1.0
- Field Summary | ||
---|---|---|
public int | x | The X coordinate of the upper-left corner of the Rectangle .
|
public int | y | The Y coordinate of the upper-left corner of the Rectangle .
|
public int | width | The width of the Rectangle .
|
public int | height | The height of the Rectangle .
|
Fields inherited from java.awt.geom.Rectangle2D: |
---|
OUT_LEFT, OUT_TOP, OUT_RIGHT, OUT_BOTTOM |
Constructor: |
---|
Rectangle whose upper-left corner
is at (0, 0) in the coordinate space, and whose width and
height are both zero. |
Rectangle , initialized to match
the values of the specified Rectangle .
|
Rectangle whose upper-left corner is the
specified Point , and whose width and height are both zero.
|
Rectangle whose top left corner is
(0, 0) and whose width and height are specified
by the Dimension argument.
|
Rectangle whose upper-left corner
is at (0, 0) in the coordinate space, and whose width and
height are specified by the arguments of the same name.
|
Rectangle whose upper-left corner is
specified by the Point argument, and
whose width and height are specified by the
Dimension argument.
|
Rectangle whose upper-left corner is
specified as
{@code (x,y)} and whose width and height
are specified by the arguments of the same name.
|
Method from java.awt.Rectangle Summary: |
---|
add, add, add, contains, contains, contains, contains, createIntersection, createUnion, equals, getBounds, getBounds2D, getHeight, getLocation, getSize, getWidth, getX, getY, grow, inside, intersection, intersects, isEmpty, move, outcode, reshape, resize, setBounds, setBounds, setLocation, setLocation, setRect, setSize, setSize, toString, translate, union |
Methods from java.awt.geom.Rectangle2D: |
---|
add, add, add, contains, contains, createIntersection, createUnion, equals, getBounds2D, getPathIterator, getPathIterator, hashCode, intersect, intersects, intersectsLine, intersectsLine, outcode, outcode, setFrame, setRect, setRect, union |
Methods from java.awt.geom.RectangularShape: |
---|
clone, contains, contains, getBounds, getCenterX, getCenterY, getFrame, getHeight, getMaxX, getMaxY, getMinX, getMinY, getPathIterator, getWidth, getX, getY, intersects, isEmpty, setFrame, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal |
Methods from java.lang.Object: |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method from java.awt.Rectangle Detail: |
---|
If this {@code Rectangle} has any dimension less than zero, the rules for non-existant rectangles apply. In that case, the new bounds of this {@code Rectangle} will have a location equal to the coordinates of the specified {@code Point} and width and height equal to zero.
After adding a r.add(pt.x, pt.y, 1, 1); |
Rectangle to this Rectangle .
The resulting Rectangle is the union of the two
rectangles.
If either {@code Rectangle} has any dimension less than 0, the result will have the dimensions of the other {@code Rectangle}. If both {@code Rectangle}s have at least one dimension less than 0, the result will have at least one dimension less than 0. If either {@code Rectangle} has one or both dimensions equal to 0, the result along those axes with 0 dimensions will be equivalent to the results obtained by adding the corresponding origin coordinate to the result rectangle along that axis, similar to the operation of the #add(Point) method, but contribute no further dimension beyond that. If the resulting {@code Rectangle} would have a dimension too large to be expressed as an {@code int}, the result will have a dimension of {@code Integer.MAX_VALUE} along that dimension. |
If this {@code Rectangle} has any dimension less than zero, the rules for non-existant rectangles apply. In that case, the new bounds of this {@code Rectangle} will have a location equal to the specified coordinates and width and height equal to zero.
After adding a point, a call to r.add(newx, newy, 1, 1); |
Rectangle contains the
specified Point . |
Rectangle entirely contains
the specified Rectangle . |
Rectangle contains the
point at the specified location {@code (x,y)}. |
Rectangle entirely contains
the Rectangle
at the specified location {@code (X,Y)} with the
specified dimensions {@code (W,H)}. |
|
|
The result is |
Rectangle of this Rectangle .
This method is included for completeness, to parallel the
|
|
Rectangle in
double precision. |
Rectangle .
This method is included for completeness, to parallel the
|
Rectangle , represented by
the returned Dimension .
This method is included for completeness, to parallel the
|
Rectangle in
double precision. |
Rectangle in
double precision. |
Rectangle in
double precision. |
Rectangle both horizontally and vertically.
This method modifies the
The new
If negative values are supplied for |
Deprecated! As - of JDK version 1.1,
replaced by contains(int, int) .
Rectangle contains the
point at the specified location {@code (X,Y)}. |
Rectangle with the
specified Rectangle . Returns a new Rectangle
that represents the intersection of the two rectangles.
If the two rectangles do not intersect, the result will be
an empty rectangle. |
Rectangle and the specified
Rectangle intersect. Two rectangles intersect if
their intersection is nonempty. |
|
Deprecated! As - of JDK version 1.1,
replaced by setLocation(int, int) .
Rectangle to the specified location.
|
|
Deprecated! As - of JDK version 1.1,
replaced by setBounds(int, int, int, int) .
Rectangle of this
Rectangle to the specified
x , y , width ,
and height .
|
Deprecated! As - of JDK version 1.1,
replaced by setSize(int, int) .
Rectangle to the specified
width and height.
|
Rectangle of this Rectangle
to match the specified Rectangle .
This method is included for completeness, to parallel the
|
Rectangle of this
Rectangle to the specified
x , y , width ,
and height .
This method is included for completeness, to parallel the
|
Rectangle to the specified location.
This method is included for completeness, to parallel the
|
Rectangle to the specified location.
This method is included for completeness, to parallel the
|
|
Rectangle to match the
specified Dimension .
This method is included for completeness, to parallel the
|
Rectangle to the specified
width and height.
This method is included for completeness, to parallel the
|
String representing this
Rectangle and its values. |
Rectangle the indicated distance,
to the right along the X coordinate axis, and
downward along the Y coordinate axis. |
Rectangle with the
specified Rectangle . Returns a new
Rectangle that
represents the union of the two rectangles.
If either {@code Rectangle} has any dimension less than zero the rules for non-existant rectangles apply. If only one has a dimension less than zero, then the result will be a copy of the other {@code Rectangle}. If both have dimension less than zero, then the result will have at least one dimension less than zero. If the resulting {@code Rectangle} would have a dimension too large to be expressed as an {@code int}, the result will have a dimension of {@code Integer.MAX_VALUE} along that dimension. |