| java.awt.geom.Rectangle2D java.awt.Rectangle
Rectangle | public class Rectangle extends Rectangle2D implements Shape,java.io.Serializable(Code) | | 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
Rectangle.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
Rectangle.add(Point) method were being called.
A
Rectangle whose width or height is negative has neither
location nor dimension along those axes with negative dimensions.
Such a
Rectangle is treated as non-existant along those axes.
Such a
Rectangle is also empty with respect to containment
calculations and methods which test if it contains or intersects a
point or rectangle will always return false.
Methods which combine such a
Rectangle with a point or rectangle
will ignore the
Rectangle entirely in generating the result.
If two
Rectangle objects are combined and each has a negative
dimension, the result will have at least one negative dimension.
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
Rectangle.x and
Rectangle.y fields by clipping the true result to the nearest 32-bit value.
The values stored into the
Rectangle.width and
Rectangle.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.
version: 1.79, 05/05/07 author: Sami Shaio since: 1.0 |
Field Summary | |
public int | height The height of the Rectangle . | public int | width The width of the Rectangle . | 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 . |
Constructor Summary | |
public | 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. | public | Rectangle(Rectangle r) Constructs a new Rectangle , initialized to match
the values of the specified Rectangle . | public | 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. | public | 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. | public | 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. | public | Rectangle(Point p) Constructs a new Rectangle whose upper-left corner is the
specified Point , and whose width and height are both zero. | public | 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. |
Method Summary | |
public void | add(int newx, int newy) Adds a point, specified by the integer arguments
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 . | public void | add(Point pt) Adds the specified
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 . | public void | add(Rectangle r) Adds a Rectangle to this Rectangle . | public boolean | contains(Point p) Checks whether or not this Rectangle contains the
specified Point . | public boolean | contains(int x, int y) Checks whether or not this Rectangle contains the
point at the specified location
(x,y) . | public boolean | contains(Rectangle r) Checks whether or not this Rectangle entirely contains
the specified Rectangle . | public 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) . | public Rectangle2D | createIntersection(Rectangle2D r) | public Rectangle2D | createUnion(Rectangle2D r) | public boolean | equals(Object obj) Checks whether two rectangles are equal. | public Rectangle | getBounds() Gets the bounding Rectangle of this Rectangle . | public Rectangle2D | getBounds2D() | public double | getHeight() Returns the height of the bounding Rectangle in
double precision.
the height of the bounding Rectangle . | public Point | getLocation() Returns the location of this Rectangle .
This method is included for completeness, to parallel the
getLocation method of Component .
the Point that is the upper-left corner ofthis Rectangle . | public Dimension | getSize() Gets the size of this Rectangle , represented by
the returned Dimension . | public double | getWidth() Returns the width of the bounding Rectangle in
double precision.
the width of the bounding Rectangle . | public double | getX() Returns the X coordinate of the bounding Rectangle in
double precision.
the X coordinate of the bounding Rectangle . | public double | getY() Returns the Y coordinate of the bounding Rectangle in
double precision.
the Y coordinate of the bounding Rectangle . | public void | grow(int h, int v) Resizes the 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. | public boolean | inside(int X, int Y) Checks whether or not this Rectangle contains the
point at the specified location
(X,Y) . | public Rectangle | intersection(Rectangle r) Computes the intersection of this Rectangle with the
specified Rectangle . | public boolean | intersects(Rectangle r) Determines whether or not this Rectangle and the specified
Rectangle intersect. | public boolean | isEmpty() | public void | move(int x, int y) Moves this Rectangle to the specified location. | public int | outcode(double x, double y) | public void | reshape(int x, int y, int width, int height) Sets the bounding Rectangle of this
Rectangle to the specified
x , y , width ,
and height . | public void | resize(int width, int height) Sets the size of this Rectangle to the specified
width and height. | public void | setBounds(Rectangle r) Sets the bounding Rectangle of this Rectangle
to match the specified Rectangle . | public 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 . | public void | setLocation(Point p) Moves this Rectangle to the specified location. | public void | setLocation(int x, int y) Moves this Rectangle to the specified location. | public 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 . | public void | setSize(Dimension d) Sets the size of this Rectangle to match the
specified Dimension . | public void | setSize(int width, int height) Sets the size of this Rectangle to the specified
width and height. | public String | toString() Returns a String representing this
Rectangle and its values. | public 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. | public Rectangle | union(Rectangle r) Computes the union of this Rectangle with the
specified Rectangle . |
Rectangle | public Rectangle()(Code) | | 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 | public Rectangle(Rectangle r)(Code) | | Constructs a new Rectangle , initialized to match
the values of the specified Rectangle .
Parameters: r - the Rectangle from which to copy initial valuesto a newly constructed Rectangle since: 1.1 |
Rectangle | public Rectangle(int x, int y, int width, int height)(Code) | | 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.
Parameters: x - the specified X coordinate Parameters: y - the specified Y coordinate Parameters: width - the width of the Rectangle Parameters: height - the height of the Rectangle since: 1.0 |
Rectangle | public Rectangle(int width, int height)(Code) | | 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.
Parameters: width - the width of the Rectangle Parameters: height - the height of the Rectangle |
Rectangle | public Rectangle(Point p, Dimension d)(Code) | | 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.
Parameters: p - a Point that is the upper-left corner of the Rectangle Parameters: d - a Dimension , representing the width and height of the Rectangle |
Rectangle | public Rectangle(Point p)(Code) | | Constructs a new Rectangle whose upper-left corner is the
specified Point , and whose width and height are both zero.
Parameters: p - a Point that is the top left corner of the Rectangle |
Rectangle | public Rectangle(Dimension d)(Code) | | Constructs a new Rectangle whose top left corner is
(0, 0) and whose width and height are specified
by the Dimension argument.
Parameters: d - a Dimension , specifying width and height |
add | public void add(int newx, int newy)(Code) | | Adds a point, specified by the integer arguments
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);
Parameters: newx - the X coordinate of the new point Parameters: newy - the Y coordinate of the new point |
add | public void add(Point pt)(Code) | | Adds the specified
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);
Parameters: pt - the new Point to add to this Rectangle |
add | public void add(Rectangle r)(Code) | | Adds a 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
Rectangle s 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
Rectangle.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.
Parameters: r - the specified Rectangle |
contains | public boolean contains(Point p)(Code) | | Checks whether or not this Rectangle contains the
specified Point .
Parameters: p - the Point to test true if the specified Point is inside this Rectangle ; false otherwise. since: 1.1 |
contains | public boolean contains(int x, int y)(Code) | | Checks whether or not this Rectangle contains the
point at the specified location
(x,y) .
Parameters: x - the specified X coordinate Parameters: y - the specified Y coordinate true if the point (x,y) is inside this Rectangle ; false otherwise. since: 1.1 |
contains | public boolean contains(Rectangle r)(Code) | | Checks whether or not this Rectangle entirely contains
the specified Rectangle .
Parameters: r - the specified Rectangle true if the Rectangle is contained entirely inside this Rectangle ; false otherwise since: 1.2 |
contains | public boolean contains(int X, int Y, int W, int H)(Code) | | Checks whether this Rectangle entirely contains
the Rectangle
at the specified location
(X,Y) with the
specified dimensions
(W,H) .
Parameters: X - the specified X coordinate Parameters: Y - the specified Y coordinate Parameters: W - the width of the Rectangle Parameters: H - the height of the Rectangle true if the Rectangle specified by (X, Y, W, H) is entirely enclosed inside this Rectangle ; false otherwise. since: 1.1 |
equals | public boolean equals(Object obj)(Code) | | Checks whether two rectangles are equal.
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 .
Parameters: obj - the Object to compare withthis Rectangle true if the objects are equal; false otherwise. |
getHeight | public double getHeight()(Code) | | Returns the height of the bounding Rectangle in
double precision.
the height of the bounding Rectangle . |
getWidth | public double getWidth()(Code) | | Returns the width of the bounding Rectangle in
double precision.
the width of the bounding Rectangle . |
getX | public double getX()(Code) | | Returns the X coordinate of the bounding Rectangle in
double precision.
the X coordinate of the bounding Rectangle . |
getY | public double getY()(Code) | | Returns the Y coordinate of the bounding Rectangle in
double precision.
the Y coordinate of the bounding Rectangle . |
grow | public void grow(int h, int v)(Code) | | Resizes the 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.
Parameters: h - the horizontal expansion Parameters: v - the vertical expansion |
inside | public boolean inside(int X, int Y)(Code) | | Checks whether or not this Rectangle contains the
point at the specified location
(X,Y) .
Parameters: X - the specified X coordinate Parameters: Y - the specified Y coordinate true if the point (X,Y) is inside this Rectangle ; false otherwise. |
intersection | public Rectangle intersection(Rectangle r)(Code) | | Computes the intersection of this 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.
Parameters: r - the specified Rectangle the largest Rectangle contained in both the specified Rectangle and in this Rectangle ; or if the rectanglesdo not intersect, an empty rectangle. |
intersects | public boolean intersects(Rectangle r)(Code) | | Determines whether or not this Rectangle and the specified
Rectangle intersect. Two rectangles intersect if
their intersection is nonempty.
Parameters: r - the specified Rectangle true if the specified Rectangle and this Rectangle intersect; false otherwise. |
isEmpty | public boolean isEmpty()(Code) | | since: 1.2 |
move | public void move(int x, int y)(Code) | | Moves this Rectangle to the specified location.
Parameters: x - the X coordinate of the new location Parameters: y - the Y coordinate of the new location |
outcode | public int outcode(double x, double y)(Code) | | since: 1.2 |
reshape | public void reshape(int x, int y, int width, int height)(Code) | | Sets the bounding Rectangle of this
Rectangle to the specified
x , y , width ,
and height .
Parameters: x - the new X coordinate for the upper-leftcorner of this Rectangle Parameters: y - the new Y coordinate for the upper-leftcorner of this Rectangle Parameters: width - the new width for this Rectangle Parameters: height - the new height for this Rectangle |
resize | public void resize(int width, int height)(Code) | | Sets the size of this Rectangle to the specified
width and height.
Parameters: width - the new width for this Rectangle Parameters: height - the new height for this Rectangle |
setBounds | public void setBounds(int x, int y, int width, int height)(Code) | | Sets the bounding 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 .
Parameters: x - the new X coordinate for the upper-leftcorner of this Rectangle Parameters: y - the new Y coordinate for the upper-leftcorner of this Rectangle Parameters: width - the new width for this Rectangle Parameters: height - the new height for this Rectangle See Also: Rectangle.getBounds See Also: java.awt.Component.setBounds(intintintint) since: 1.1 |
setLocation | public void setLocation(int x, int y)(Code) | | Moves this Rectangle to the specified location.
This method is included for completeness, to parallel the
setLocation method of Component .
Parameters: x - the X coordinate of the new location Parameters: y - the Y coordinate of the new location See Also: Rectangle.getLocation See Also: java.awt.Component.setLocation(intint) since: 1.1 |
setRect | public void setRect(double x, double y, double width, double height)(Code) | | Sets the bounds of this
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.
Parameters: x - the X coordinate of the upper-left corner of the specified rectangle Parameters: y - the Y coordinate of the upper-left corner of the specified rectangle Parameters: width - the width of the specified rectangle Parameters: height - the new height of the specified rectangle |
setSize | public void setSize(int width, int height)(Code) | | Sets the size of this Rectangle to the specified
width and height.
This method is included for completeness, to parallel the
setSize method of Component .
Parameters: width - the new width for this Rectangle Parameters: height - the new height for this Rectangle See Also: java.awt.Component.setSize(intint) See Also: Rectangle.getSize since: 1.1 |
toString | public String toString()(Code) | | Returns a String representing this
Rectangle and its values.
a String representing this Rectangle object's coordinate and size values. |
union | public Rectangle union(Rectangle r)(Code) | | Computes the union of this 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.
Parameters: r - the specified Rectangle the smallest Rectangle containing both the specified Rectangle and this Rectangle . |
Methods inherited from java.awt.geom.Rectangle2D | public void add(double newx, double newy)(Code)(Java Doc) public void add(Point2D pt)(Code)(Java Doc) public void add(Rectangle2D r)(Code)(Java Doc) public boolean contains(double x, double y)(Code)(Java Doc) public boolean contains(double x, double y, double w, double h)(Code)(Java Doc) abstract public Rectangle2D createIntersection(Rectangle2D r)(Code)(Java Doc) abstract public Rectangle2D createUnion(Rectangle2D r)(Code)(Java Doc) public boolean equals(Object obj)(Code)(Java Doc) public Rectangle2D getBounds2D()(Code)(Java Doc) public PathIterator getPathIterator(AffineTransform at)(Code)(Java Doc) public PathIterator getPathIterator(AffineTransform at, double flatness)(Code)(Java Doc) public int hashCode()(Code)(Java Doc) public static void intersect(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)(Code)(Java Doc) public boolean intersects(double x, double y, double w, double h)(Code)(Java Doc) public boolean intersectsLine(double x1, double y1, double x2, double y2)(Code)(Java Doc) public boolean intersectsLine(Line2D l)(Code)(Java Doc) abstract public int outcode(double x, double y)(Code)(Java Doc) public int outcode(Point2D p)(Code)(Java Doc) public void setFrame(double x, double y, double w, double h)(Code)(Java Doc) abstract public void setRect(double x, double y, double w, double h)(Code)(Java Doc) public void setRect(Rectangle2D r)(Code)(Java Doc) public static void union(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)(Code)(Java Doc)
|
|
|