|
Java™ Platform Standard Ed. 6 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.awt.geom.RectangularShape
java.awt.geom.Rectangle2D
java.awt.Rectangle
public class Rectangle
A 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.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class java.awt.geom.Rectangle2D |
|---|
Rectangle2D.Double, Rectangle2D.Float |
| Field Summary | |
|---|---|
int |
height
The height of the Rectangle. |
int |
width
The width of the Rectangle. |
int |
x
The X coordinate of the upper-left corner of the Rectangle. |
int |
y
The Y coordinate of the upper-left corner of the Rectangle. |
| Fields inherited from class java.awt.geom.Rectangle2D |
|---|
OUT_BOTTOM, OUT_LEFT, OUT_RIGHT, OUT_TOP |
| Constructor Summary | |
|---|---|
Rectangle()
Constructs a new Rectangle whose upper-left corner
is at (0, 0) in the coordinate space, and whose width and
height are both zero. |
|
Rectangle(Dimension d)
Constructs a new Rectangle whose top left corner is
(0, 0) and whose width and height are specified
by the Dimension argument. |
|
Rectangle(int width,
int height)
Constructs a new 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(int x,
int y,
int width,
int height)
Constructs a new Rectangle whose upper-left corner is
specified as
(x,y) and whose width and height
are specified by the arguments of the same name. |
|
Rectangle(Point p)
Constructs a new Rectangle whose upper-left corner is the
specified Point, and whose width and height are both zero. |
|
Rectangle(Point p,
Dimension d)
Constructs a new Rectangle whose upper-left corner is
specified by the Point argument, and
whose width and height are specified by the
Dimension argument. |
|
Rectangle(Rectangle r)
Constructs a new Rectangle, initialized to match
the values of the specified Rectangle. |
|
| Method Summary | |
|---|---|
void |
add(int newx,
int newy)
Adds a point, specified by the integer arguments newx,newy
to the bounds of this Rectangle. |
void |
add(Point pt)
Adds the specified Point to the bounds of this
Rectangle. |
void |
add(Rectangle r)
Adds a Rectangle to this Rectangle. |
boolean |
contains(int x,
int y)
Checks whether or not this Rectangle contains the
point at the specified location (x,y). |
boolean |
contains(int X,
int Y,
int W,
int H)
Checks whether this Rectangle entirely contains
the Rectangle
at the specified location (X,Y) with the
specified dimensions (W,H). |
boolean |
contains(Point p)
Checks whether or not this Rectangle contains the
specified Point. |
boolean |
contains(Rectangle r)
Checks whether or not this Rectangle entirely contains
the specified Rectangle. |
Rectangle2D |
createIntersection(Rectangle2D r)
Returns a new Rectangle2D object representing the
intersection of this Rectangle2D with the specified
Rectangle2D. |
Rectangle2D |
createUnion(Rectangle2D r)
Returns a new Rectangle2D object representing the
union of this Rectangle2D with the specified
Rectangle2D. |
boolean |
equals(Object obj)
Checks whether two rectangles are equal. |
Rectangle |
getBounds()
Gets the bounding Rectangle of this Rectangle. |
Rectangle2D |
getBounds2D()
Returns a high precision and more accurate bounding box of the Shape than the getBounds method. |
double |
getHeight()
Returns the height of the bounding Rectangle in
double precision. |
Point |
getLocation()
Returns the location of this Rectangle. |
Dimension |
getSize()
Gets the size of this Rectangle, represented by
the returned Dimension. |
double |
getWidth()
Returns the width of the bounding Rectangle in
double precision. |
double |
getX()
Returns the X coordinate of the bounding Rectangle in
double precision. |
double |
getY()
Returns the Y coordinate of the bounding Rectangle in
double precision. |
void |
grow(int h,
int v)
Resizes the Rectangle both horizontally and vertically. |
boolean |
inside(int X,
int Y)
Deprecated. As of JDK version 1.1, replaced by contains(int, int). |
Rectangle |
intersection(Rectangle r)
Computes the intersection of this Rectangle with the
specified Rectangle. |
boolean |
intersects(Rectangle r)
Determines whether or not this Rectangle and the specified
Rectangle intersect. |
boolean |
isEmpty()
Determines whether the RectangularShape is empty. |
void |
move(int x,
int y)
Deprecated. As of JDK version 1.1, replaced by setLocation(int, int). |
int |
outcode(double x,
double y)
Determines where the specified coordinates lie with respect to this Rectangle2D. |
void |
reshape(int x,
int y,
int width,
int height)
Deprecated. As of JDK version 1.1, replaced by setBounds(int, int, int, int). |
void |
resize(int width,
int height)
Deprecated. As of JDK version 1.1, replaced by setSize(int, int). |
void |
setBounds(int x,
int y,
int width,
int height)
Sets the bounding Rectangle of this
Rectangle to the specified
x, y, width,
and height. |
void |
setBounds(Rectangle r)
Sets the bounding Rectangle of this Rectangle
to match the specified Rectangle. |
void |
setLocation(int x,
int y)
Moves this Rectangle to the specified location. |
void |
setLocation(Point p)
Moves this Rectangle to the specified location. |
void |
setRect(double x,
double y,
double width,
double height)
Sets the bounds of this Rectangle to the integer bounds
which encompass the specified x, y, width,
and height. |
void |
setSize(Dimension d)
Sets the size of this Rectangle to match the
specified Dimension. |
void |
setSize(int width,
int height)
Sets the size of this Rectangle to the specified
width and height. |
String |
toString()
Returns a String representing this
Rectangle and its values. |
void |
translate(int dx,
int dy)
Translates this Rectangle the indicated distance,
to the right along the X coordinate axis, and
downward along the Y coordinate axis. |
Rectangle |
union(Rectangle r)
Computes the union of this Rectangle with the
specified Rectangle. |
| Methods inherited from class java.awt.geom.Rectangle2D |
|---|
add, add, add, contains, contains, getPathIterator, getPathIterator, hashCode, intersect, intersects, intersectsLine, intersectsLine, outcode, setFrame, setRect, union |
| Methods inherited from class java.awt.geom.RectangularShape |
|---|
clone, contains, contains, getCenterX, getCenterY, getFrame, getMaxX, getMaxY, getMinX, getMinY, intersects, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal |
| Methods inherited from class java.lang.Object |
|---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface java.awt.Shape |
|---|
contains, contains, contains, contains, getPathIterator, getPathIterator, intersects, intersects |
| Field Detail |
|---|
public int x
Rectangle.
setLocation(int, int),
getLocation()public int y
Rectangle.
setLocation(int, int),
getLocation()public int width
Rectangle.
setSize(int, int),
getSize()public int height
Rectangle.
setSize(int, int),
getSize()| Constructor Detail |
|---|
public Rectangle()
Rectangle whose upper-left corner
is at (0, 0) in the coordinate space, and whose width and
height are both zero.
public Rectangle(Rectangle r)
Rectangle, initialized to match
the values of the specified Rectangle.
r - the Rectangle from which to copy initial values
to a newly constructed Rectangle
public Rectangle(int x,
int y,
int width,
int height)
Rectangle whose upper-left corner is
specified as
(x,y) and whose width and height
are specified by the arguments of the same name.
x - the specified X coordinatey - the specified Y coordinatewidth - the width of the Rectangleheight - the height of the Rectangle
public Rectangle(int width,
int height)
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.
width - the width of the Rectangleheight - the height of the Rectangle
public Rectangle(Point p,
Dimension d)
Rectangle whose upper-left corner is
specified by the Point argument, and
whose width and height are specified by the
Dimension argument.
p - a Point that is the upper-left corner of
the Rectangled - a Dimension, representing the
width and height of the Rectanglepublic Rectangle(Point p)
Rectangle whose upper-left corner is the
specified Point, and whose width and height are both zero.
p - a Point that is the top left corner
of the Rectanglepublic Rectangle(Dimension d)
Rectangle whose top left corner is
(0, 0) and whose width and height are specified
by the Dimension argument.
d - a Dimension, specifying width and height| Method Detail |
|---|
public double getX()
Rectangle in
double precision.
getX in class RectangularShapeRectangle.public double getY()
Rectangle in
double precision.
getY in class RectangularShapeRectangle.public double getWidth()
Rectangle in
double precision.
getWidth in class RectangularShapeRectangle.public double getHeight()
Rectangle in
double precision.
getHeight in class RectangularShapeRectangle.public Rectangle getBounds()
Rectangle of this Rectangle.
This method is included for completeness, to parallel the
getBounds method of
Component.
getBounds in interface ShapegetBounds in class RectangularShapeRectangle, equal to the
bounding Rectangle for this Rectangle.Component.getBounds(),
setBounds(Rectangle),
setBounds(int, int, int, int)public Rectangle2D getBounds2D()
Shape than the getBounds method.
Note that there is no guarantee that the returned
Rectangle2D is the smallest bounding box that encloses
the Shape, only that the Shape lies
entirely within the indicated Rectangle2D. The
bounding box returned by this method is usually tighter than that
returned by the getBounds method and never fails due
to overflow problems since the return value can be an instance of
the Rectangle2D that uses double precision values to
store the dimensions.
getBounds2D in interface ShapegetBounds2D in class Rectangle2DRectangle2D that is a
high-precision bounding box of the Shape.Shape.getBounds()public void setBounds(Rectangle r)
Rectangle of this Rectangle
to match the specified Rectangle.
This method is included for completeness, to parallel the
setBounds method of Component.
r - the specified RectanglegetBounds(),
Component.setBounds(java.awt.Rectangle)
public void setBounds(int x,
int y,
int width,
int height)
Rectangle of this
Rectangle to the specified
x, y, width,
and height.
This method is included for completeness, to parallel the
setBounds method of Component.
x - the new X coordinate for the upper-left
corner of this Rectangley - the new Y coordinate for the upper-left
corner of this Rectanglewidth - the new width for this Rectangleheight - the new height for this RectanglegetBounds(),
Component.setBounds(int, int, int, int)
public void setRect(double x,
double y,
double width,
double height)
Rectangle to the integer bounds
which encompass the specified x, y, width,
and height.
If the parameters specify a Rectangle that exceeds the
maximum range of integers, the result will be the best
representation of the specified Rectangle intersected
with the maximum integer bounds.
setRect in class Rectangle2Dx - the X coordinate of the upper-left corner of
the specified rectangley - the Y coordinate of the upper-left corner of
the specified rectanglewidth - the width of the specified rectangleheight - the new height of the specified rectangle
@Deprecated
public void reshape(int x,
int y,
int width,
int height)
setBounds(int, int, int, int).
Rectangle of this
Rectangle to the specified
x, y, width,
and height.
x - the new X coordinate for the upper-left
corner of this Rectangley - the new Y coordinate for the upper-left
corner of this Rectanglewidth - the new width for this Rectangleheight - the new height for this Rectanglepublic Point getLocation()
Rectangle.
This method is included for completeness, to parallel the
getLocation method of Component.
Point that is the upper-left corner of
this Rectangle.Component.getLocation(),
setLocation(Point),
setLocation(int, int)public void setLocation(Point p)
Rectangle to the specified location.
This method is included for completeness, to parallel the
setLocation method of Component.
p - the Point specifying the new location
for this RectangleComponent.setLocation(java.awt.Point),
getLocation()
public void setLocation(int x,
int y)
Rectangle to the specified location.
This method is included for completeness, to parallel the
setLocation method of Component.
x - the X coordinate of the new locationy - the Y coordinate of the new locationgetLocation(),
Component.setLocation(int, int)
@Deprecated
public void move(int x,
int y)
setLocation(int, int).
Rectangle to the specified location.
x - the X coordinate of the new locationy - the Y coordinate of the new location
public void translate(int dx,
int dy)
Rectangle the indicated distance,
to the right along the X coordinate axis, and
downward along the Y coordinate axis.
dx - the distance to move this Rectangle
along the X axisdy - the distance to move this Rectangle
along the Y axissetLocation(int, int),
setLocation(java.awt.Point)public Dimension getSize()
Rectangle, represented by
the returned Dimension.
This method is included for completeness, to parallel the
getSize method of Component.
Dimension, representing the size of
this Rectangle.Component.getSize(),
setSize(Dimension),
setSize(int, int)public void setSize(Dimension d)
Rectangle to match the
specified Dimension.
This method is included for completeness, to parallel the
setSize method of Component.
d - the new size for the Dimension objectComponent.setSize(java.awt.Dimension),
getSize()
public void setSize(int width,
int height)
Rectangle to the specified
width and height.
This method is included for completeness, to parallel the
setSize method of Component.
width - the new width for this Rectangleheight - the new height for this RectangleComponent.setSize(int, int),
getSize()
@Deprecated
public void resize(int width,
int height)
setSize(int, int).
Rectangle to the specified
width and height.
width - the new width for this Rectangleheight - the new height for this Rectanglepublic boolean contains(Point p)
Rectangle contains the
specified Point.
p - the Point to test
true if the specified Point
is inside this Rectangle;
false otherwise.
public boolean contains(int x,
int y)
Rectangle contains the
point at the specified location (x,y).
x - the specified X coordinatey - the specified Y coordinate
true if the point
(x,y) is inside this
Rectangle;
false otherwise.public boolean contains(Rectangle r)
Rectangle entirely contains
the specified Rectangle.
r - the specified Rectangle
true if the Rectangle
is contained entirely inside this Rectangle;
false otherwise
public boolean contains(int X,
int Y,
int W,
int H)
Rectangle entirely contains
the Rectangle
at the specified location (X,Y) with the
specified dimensions (W,H).
X - the specified X coordinateY - the specified Y coordinateW - the width of the RectangleH - the height of the Rectangle
true if the Rectangle specified by
(X, Y, W, H)
is entirely enclosed inside this Rectangle;
false otherwise.
@Deprecated
public boolean inside(int X,
int Y)
contains(int, int).
Rectangle contains the
point at the specified location (X,Y).
X - the specified X coordinateY - the specified Y coordinate
true if the point
(X,Y) is inside this
Rectangle;
false otherwise.public boolean intersects(Rectangle r)
Rectangle and the specified
Rectangle intersect. Two rectangles intersect if
their intersection is nonempty.
r - the specified Rectangle
true if the specified Rectangle
and this Rectangle intersect;
false otherwise.public Rectangle intersection(Rectangle r)
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.
r - the specified Rectangle
Rectangle contained in both the
specified Rectangle and in
this Rectangle; or if the rectangles
do not intersect, an empty rectangle.public Rectangle union(Rectangle r)
Rectangle with the
specified Rectangle. Returns a new
Rectangle that
represents the union of the two rectangles.
If either 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 Rectangle.
If both have dimension less than zero, then the result will
have at least one dimension less than zero.
If the resulting Rectangle would have a dimension
too large to be expressed as an int, the result
will have a dimension of Integer.MAX_VALUE along
that dimension.
r - the specified Rectangle
Rectangle containing both
the specified Rectangle and this
Rectangle.
public void add(int newx,
int newy)
newx,newy
to the bounds of this Rectangle.
If this Rectangle has any dimension less than zero,
the rules for non-existant
rectangles apply.
In that case, the new bounds of this Rectangle will
have a location equal to the specified coordinates and
width and height equal to zero.
After adding a point, a call to contains with the
added point as an argument does not necessarily return
true. The contains method does not
return true for points on the right or bottom
edges of a Rectangle. Therefore, if the added point
falls on the right or bottom edge of the enlarged
Rectangle, contains returns
false for that point.
If the specified point must be contained within the new
Rectangle, a 1x1 rectangle should be added instead:
r.add(newx, newy, 1, 1);
newx - the X coordinate of the new pointnewy - the Y coordinate of the new pointpublic void add(Point pt)
Point to the bounds of this
Rectangle.
If this Rectangle has any dimension less than zero,
the rules for non-existant
rectangles apply.
In that case, the new bounds of this Rectangle will
have a location equal to the coordinates of the specified
Point and width and height equal to zero.
After adding a Point, a call to contains
with the added Point as an argument does not
necessarily return true. The contains
method does not return true for points on the right
or bottom edges of a Rectangle. Therefore if the added
Point falls on the right or bottom edge of the
enlarged Rectangle, contains returns
false for that Point.
If the specified point must be contained within the new
Rectangle, a 1x1 rectangle should be added instead:
r.add(pt.x, pt.y, 1, 1);
pt - the new Point to add to this
Rectanglepublic void add(Rectangle r)
Rectangle to this Rectangle.
The resulting Rectangle is the union of the two
rectangles.
If either Rectangle has any dimension less than 0, the
result will have the dimensions of the other Rectangle.
If both Rectangles have at least one dimension less
than 0, the result will have at least one dimension less than 0.
If either 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 Rectangle would have a dimension
too large to be expressed as an int, the result
will have a dimension of Integer.MAX_VALUE along
that dimension.
r - the specified Rectangle
public void grow(int h,
int v)
Rectangle both horizontally and vertically.
This method modifies the Rectangle so that it is
h units larger on both the left and right side,
and v units larger at both the top and bottom.
The new Rectangle has (x - h, y - v)
as its upper-left corner,
width of (width + 2h),
and a height of (height + 2v).
If negative values are supplied for h and
v, the size of the Rectangle
decreases accordingly.
The grow method will check for integer overflow
and underflow, but does not check whether the resulting
values of width and height grow
from negative to non-negative or shrink from non-negative
to negative.
h - the horizontal expansionv - the vertical expansionpublic boolean isEmpty()
RectangularShape is empty.
When the RectangularShape is empty, it encloses no
area.
isEmpty in class RectangularShapetrue if the RectangularShape is empty;
false otherwise.
public int outcode(double x,
double y)
Rectangle2D.
This method computes a binary OR of the appropriate mask values
indicating, for each side of this Rectangle2D,
whether or not the specified coordinates are on the same side
of the edge as the rest of this Rectangle2D.
outcode in class Rectangle2Dx - the specified X coordinatey - the specified Y coordinate
Rectangle2D.OUT_LEFT,
Rectangle2D.OUT_TOP,
Rectangle2D.OUT_RIGHT,
Rectangle2D.OUT_BOTTOMpublic Rectangle2D createIntersection(Rectangle2D r)
Rectangle2D object representing the
intersection of this Rectangle2D with the specified
Rectangle2D.
createIntersection in class Rectangle2Dr - the Rectangle2D to be intersected with
this Rectangle2D
Rectangle2D contained in both
the specified Rectangle2D and in this
Rectangle2D.public Rectangle2D createUnion(Rectangle2D r)
Rectangle2D object representing the
union of this Rectangle2D with the specified
Rectangle2D.
createUnion in class Rectangle2Dr - the Rectangle2D to be combined with
this Rectangle2D
Rectangle2D containing both
the specified Rectangle2D and this
Rectangle2D.public boolean equals(Object obj)
The result is true if and only if the argument is not
null and is a Rectangle object that has the
same upper-left corner, width, and height as
this Rectangle.
equals in class Rectangle2Dobj - the Object to compare with
this Rectangle
true if the objects are equal;
false otherwise.Object.hashCode(),
Hashtablepublic String toString()
String representing this
Rectangle and its values.
toString in class ObjectString representing this
Rectangle object's coordinate and size values.
|
Java™ Platform Standard Ed. 6 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
Copyright © 1993, 2010, Oracle and/or its affiliates. All rights reserved.