Rectangle specifies an area in a coordinate space that is
enclosed by the Rectangle object's upper-left point
(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 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 Rectangle.
Methods which test if an empty Rectangle contains or intersects
a point or rectangle will always return false if either dimension is zero.
Methods which combine such a Rectangle with a point or rectangle
will include the location of the Rectangle on that axis in the
result as if the add(Point) method were being called.
Methods which affect only the location of a Rectangle will
operate on its location regardless of whether or not it has a negative
or zero dimension along either axis.
Note that a Rectangle constructed with the default no-argument
constructor will have dimensions of 0x0 and therefore be empty.
That Rectangle will still have a location of (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 Rectangle with a specifically
negative width and height or it should use the first point in the set
to construct the 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.
| Modifier and Type | Field and Description |
|---|---|
| public int | height
The height of the |
| public int | width
The width of the |
| public int | x
The X coordinate of the upper-left corner of the |
| public int | y
The Y coordinate of the upper-left corner of the |
| Access | Constructor and Description |
|---|---|
| public | Rectangle()
Constructs a new |
| public | Rectangle(BaseBounds b)
Constructs a new |
| public | |
| public | Rectangle(int
the specified X coordinate x, int the specified Y coordinate y, int the width of the width, int Rectanglethe height of the height)RectangleConstructs a new |
| public | Rectangle(int
the width of the width, int Rectanglethe height of the height)RectangleConstructs a new |
| Modifier and Type | Method and Description |
|---|---|
| public void | add(int
the X coordinate of the new point newx, int the Y coordinate of the new point newy)Adds a point, specified by the integer arguments |
| public void | |
| public boolean | Returns: true if the point
(cx,cy) is inside this
Rectangle;
false otherwise.the specified X coordinate cx, int the specified Y coordinate cy)Checks whether or not this |
| public boolean | |
| public boolean | Returns: true if the Rectangle specified by
(cx, cy, cw, ch)
is entirely enclosed inside this Rectangle;
false otherwise.the specified X coordinate cx, int the specified Y coordinate cy, int the width of the cw, int Rectanglethe height of the ch)RectangleChecks whether this |
| public boolean | Returns: true if the objects are equal;
false otherwise.the obj)Object to compare with
this RectangleOverrides java. Checks whether two rectangles are equal. |
| public void | grow(int
the horizontal expansion h, int the vertical expansion v)Resizes the |
| public int | |
| public Rectangle | |
| public void | |
| public boolean | |
| private void | |
| public void | |
| public void | setBounds(int
the new X coordinate for the upper-left
corner of this x, int Rectanglethe new Y coordinate for the upper-left
corner of this y, int Rectanglethe new width for this width, int Rectanglethe new height for this height)RectangleSets the bounding |
| public void | |
| public RectBounds | |
| public String | Returns: aString representing this
Rectangle object's coordinate and size values.Overrides java. Returns a |
| public void | translate(int
the distance to move this dx, int Rectangle
along the X axisthe distance to move this dy)Rectangle
along the Y axisTranslates this |
| height | back to summary |
|---|---|
| public int height The height of the | |
| width | back to summary |
|---|---|
| public int width The width of the | |
| x | back to summary |
|---|---|
| public int x The X coordinate of the upper-left corner of the | |
| y | back to summary |
|---|---|
| public int y The Y coordinate of the upper-left corner of the | |
| Rectangle | back to summary |
|---|---|
| public Rectangle() Constructs a new | |
| Rectangle | back to summary |
|---|---|
| public Rectangle(BaseBounds b) Constructs a new | |
| Rectangle | back to summary |
|---|---|
| public Rectangle(Rectangle r) Constructs a new
| |
| Rectangle | back to summary |
|---|---|
| public Rectangle(int x, int y, int width, int height) Constructs a new
| |
| Rectangle | back to summary |
|---|---|
| public Rectangle(int width, int height) Constructs a new
| |
| add | back to summary |
|---|---|
| public void add(int newx, int newy) Adds a point, specified by the integer arguments
If this
After adding a point, a call to
r.add(newx, newy, 1, 1);
| |
| add | back to summary |
|---|---|
| public void add(Rectangle r) Adds a
If either
If either
If the resulting
| |
| contains | back to summary |
|---|---|
| public boolean contains(int cx, int cy) Checks whether or not this
| |
| contains | back to summary |
|---|---|
| public boolean contains(Rectangle r) Checks whether or not this
| |
| contains | back to summary |
|---|---|
| public boolean contains(int cx, int cy, int cw, int ch) Checks whether this
| |
| equals | back to summary |
|---|---|
| public boolean equals(Object obj) Overrides java. Checks whether two rectangles are equal.
The result is | |
| grow | back to summary |
|---|---|
| public void grow(int h, int v) Resizes the
This method modifies the
The new
If negative values are supplied for
| |
| hashCode | back to summary |
|---|---|
| public int hashCode() Overrides java. Doc from java. Returns a hash code value for this object. This method is
supported for the benefit of hash tables such as those provided by
The general contract of
| |
| intersection | back to summary |
|---|---|
| public Rectangle intersection(Rectangle r) | |
| intersectWith | back to summary |
|---|---|
| public void intersectWith(Rectangle r) | |
| isEmpty | back to summary |
|---|---|
| public boolean isEmpty() | |
| reshape | back to summary |
|---|---|
| private void reshape(int x, int y, int width, int height) | |
| setBounds | back to summary |
|---|---|
| public void setBounds(Rectangle r) Sets the bounding
This method is included for completeness, to parallel the
| |
| setBounds | back to summary |
|---|---|
| public void setBounds(int x, int y, int width, int height) Sets the bounding
This method is included for completeness, to parallel the
| |
| setBounds | back to summary |
|---|---|
| public void setBounds(BaseBounds b) | |
| toRectBounds | back to summary |
|---|---|
| public RectBounds toRectBounds() | |
| toString | back to summary |
|---|---|
| public String toString() Overrides java. Returns a | |
| translate | back to summary |
|---|---|
| public void translate(int dx, int dy) Translates this
| |