java.awt

Class Rectangle

Implemented Interfaces:
Cloneable, Serializable, Shape
Known Direct Subclasses:
DefaultCaret

public class Rectangle
extends Rectangle2D
implements Shape, Serializable

This class represents a rectangle and all the interesting things you might want to do with it. Note that the coordinate system uses the origin (0,0) as the top left of the screen, with the x and y values increasing as they move to the right and down respectively.

It is valid for a rectangle to have negative width or height; but it is considered to have no area or internal points. Therefore, the behavior in methods like contains or intersects is undefined unless the rectangle has positive width and height.

There are some public fields; if you mess with them in an inconsistent manner, it is your own fault when you get NullPointerException, ArrayIndexOutOfBoundsException, or invalid results. Also, this class is not threadsafe.

Since:
1.0

See Also:
Serialized Form

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 top-left corner of the rectangle.
int
y
The Y coordinate of the top-left corner of the rectangle.

Fields inherited from class java.awt.geom.Rectangle2D

OUT_BOTTOM, OUT_LEFT, OUT_RIGHT, OUT_TOP

Constructor Summary

Rectangle()
Initializes a new instance of Rectangle with a top left corner at (0,0) and a width and height of 0.
Rectangle(int width, int height)
Initializes a new instance of Rectangle with the specified width and height.
Rectangle(int x, int y, int width, int height)
Initializes a new instance of Rectangle from the specified inputs.
Rectangle(Dimension d)
Initializes a new instance of Rectangle with an upper left corner at the origin (0,0) and a width and height represented by the specified dimension.
Rectangle(Point p)
Initializes a new instance of Rectangle with a top left corner at the specified point and a width and height of zero.
Rectangle(Point p, Dimension d)
Initializes a new instance of Rectangle with a top-left corner represented by the specified point and the width and height represented by the specified dimension.
Rectangle(Rectangle r)
Initializes a new instance of Rectangle from the coordinates of the specified rectangle.

Method Summary

void
add(int x, int y)
Modifies this rectangle so that it represents the smallest rectangle that contains both the existing rectangle and the specified point.
void
add(Point p)
Modifies this rectangle so that it represents the smallest rectangle that contains both the existing rectangle and the specified point.
void
add(Rectangle r)
Modifies this rectangle so that it represents the smallest rectangle that contains both the existing rectangle and the specified rectangle.
boolean
contains(int x, int y)
Tests whether or not the specified point is inside this rectangle.
boolean
contains(int x, int y, int w, int h)
Checks whether all points in the given rectangle are contained in this rectangle.
boolean
contains(Point p)
Tests whether or not the specified point is inside this rectangle.
boolean
contains(Rectangle r)
Checks whether all points in the given rectangle are contained in this rectangle.
Rectangle2D
createIntersection(Rectangle2D r)
Determines the rectangle which is formed by the intersection of this rectangle with the specified rectangle.
Rectangle2D
createUnion(Rectangle2D r)
Returns the smallest rectangle that contains both this rectangle and the specified rectangle.
boolean
equals(Object obj)
Tests this rectangle for equality against the specified object.
Rectangle
getBounds()
Returns the bounds of this rectangle.
Rectangle2D
getBounds2D()
Returns the high-precision bounds of this rectangle.
double
getHeight()
Get the height of the rectangle.
Point
getLocation()
Returns the location of this rectangle, which is the coordinates of its upper left corner.
Dimension
getSize()
Returns the size of this rectangle.
double
getWidth()
Get the width of the rectangle.
double
getX()
Get the X coordinate of the upper-left corner.
double
getY()
Get the Y coordinate of the upper-left corner.
void
grow(int h, int v)
Expands the rectangle by the specified amount.
boolean
inside(int x, int y)
Deprecated. use contains(int,int) instead
Rectangle
intersection(Rectangle r)
Determines the rectangle which is formed by the intersection of this rectangle with the specified rectangle.
boolean
intersects(Rectangle r)
Tests whether or not the specified rectangle intersects this rectangle.
boolean
isEmpty()
Tests whether or not this rectangle is empty.
void
move(int x, int y)
Deprecated. use setLocation(int,int) instead
int
outcode(double x, double y)
Determine where the point lies with respect to this rectangle.
void
reshape(int x, int y, int width, int height)
Deprecated. use setBounds(int,int,int,int) instead
void
resize(int width, int height)
Deprecated. use setSize(int,int) instead
void
setBounds(int x, int y, int width, int height)
Updates this rectangle to have the specified dimensions.
void
setBounds(Rectangle r)
Updates this rectangle to match the dimensions of the specified rectangle.
void
setLocation(int x, int y)
Moves the location of this rectangle by setting its upper left corner to the specified coordinates.
void
setLocation(Point p)
Moves the location of this rectangle by setting its upper left corner to the specified point.
void
setRect(double x, double y, double width, double height)
Updates this rectangle to have the specified dimensions, as rounded to integers.
void
setSize(int width, int height)
Sets the size of this rectangle based on the specified dimensions.
void
setSize(Dimension d)
Sets the size of this rectangle based on the specified dimensions.
String
toString()
Returns a string representation of this rectangle.
void
translate(int dx, int dy)
Translate the location of this rectangle by the given amounts.
Rectangle
union(Rectangle r)
Returns the smallest rectangle that contains both this rectangle and the specified rectangle.

Methods inherited from class 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 inherited from class 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 inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

height

public int height
The height of the rectangle.

See Also:
setSize(int,int), getSize()


width

public int width
The width of the rectangle.

See Also:
setSize(int,int), getSize()


x

public int x
The X coordinate of the top-left corner of the rectangle.

See Also:
setLocation(int,int), getLocation()


y

public int y
The Y coordinate of the top-left corner of the rectangle.

See Also:
setLocation(int,int), getLocation()

Constructor Details

Rectangle

public Rectangle()
Initializes a new instance of Rectangle with a top left corner at (0,0) and a width and height of 0.


Rectangle

public Rectangle(int width,
                 int height)
Initializes a new instance of Rectangle with the specified width and height. The upper left corner of the rectangle will be at the origin (0,0).

Parameters:
width - the width of the rectangle
height - the height of the rectange


Rectangle

public Rectangle(int x,
                 int y,
                 int width,
                 int height)
Initializes a new instance of Rectangle from the specified inputs.

Parameters:
x - the X coordinate of the top left corner
y - the Y coordinate of the top left corner
width - the width of the rectangle
height - the height of the rectangle


Rectangle

public Rectangle(Dimension d)
Initializes a new instance of Rectangle with an upper left corner at the origin (0,0) and a width and height represented by the specified dimension.

Parameters:
d - the width and height of the rectangle


Rectangle

public Rectangle(Point p)
Initializes a new instance of Rectangle with a top left corner at the specified point and a width and height of zero.

Parameters:
p - the upper left corner of the rectangle


Rectangle

public Rectangle(Point p,
                 Dimension d)
Initializes a new instance of Rectangle with a top-left corner represented by the specified point and the width and height represented by the specified dimension.

Parameters:
p - the upper left corner of the rectangle
d - the width and height of the rectangle

Throws:
NullPointerException - if p or d is null


Rectangle

public Rectangle(Rectangle r)
Initializes a new instance of Rectangle from the coordinates of the specified rectangle.

Parameters:
r - the rectangle to copy from

Throws:
NullPointerException - if r is null

Since:
1.1

Method Details

add

public void add(int x,
                int y)
Modifies this rectangle so that it represents the smallest rectangle that contains both the existing rectangle and the specified point. However, if the point falls on one of the two borders which are not inside the rectangle, a subsequent call to contains may return false.

Parameters:
x - the X coordinate of the point to add to this rectangle
y - the Y coordinate of the point to add to this rectangle


add

public void add(Point p)
Modifies this rectangle so that it represents the smallest rectangle that contains both the existing rectangle and the specified point. However, if the point falls on one of the two borders which are not inside the rectangle, a subsequent call to contains may return false.

Parameters:
p - the point to add to this rectangle

Throws:
NullPointerException - if p is null


add

public void add(Rectangle r)
Modifies this rectangle so that it represents the smallest rectangle that contains both the existing rectangle and the specified rectangle.

Parameters:
r - the rectangle to add to this rectangle

Throws:
NullPointerException - if r is null

See Also:
union(Rectangle)


contains

public boolean contains(int x,
                        int y)
Tests whether or not the specified point is inside this rectangle. According to the contract of Shape, a point on the border is in only if it has an adjacent point inside the rectangle in either the increasing x or y direction.

Parameters:
x - the X coordinate of the point to test
y - the Y coordinate of the point to test

Returns:
true if the point is inside the rectangle

Since:
1.1


contains

public boolean contains(int x,
                        int y,
                        int w,
                        int h)
Checks whether all points in the given rectangle are contained in this rectangle.

Parameters:
x - the x coordinate of the rectangle to check
y - the y coordinate of the rectangle to check
w - the width of the rectangle to check
h - the height of the rectangle to check

Returns:
true if the parameters are contained in this rectangle

Since:
1.1


contains

public boolean contains(Point p)
Tests whether or not the specified point is inside this rectangle. According to the contract of Shape, a point on the border is in only if it has an adjacent point inside the rectangle in either the increasing x or y direction.

Parameters:
p - the point to test

Returns:
true if the point is inside the rectangle

Throws:
NullPointerException - if p is null

Since:
1.1

See Also:
contains(int,int)


contains

public boolean contains(Rectangle r)
Checks whether all points in the given rectangle are contained in this rectangle.

Parameters:
r - the rectangle to check

Returns:
true if r is contained in this rectangle

Throws:
NullPointerException - if r is null

Since:
1.1

See Also:
contains(int,int,int,int)


createIntersection

public Rectangle2D createIntersection(Rectangle2D r)
Determines the rectangle which is formed by the intersection of this rectangle with the specified rectangle. If the two do not intersect, an empty rectangle will be returned (meaning the width and/or height will be non-positive).
Overrides:
createIntersection in interface Rectangle2D

Parameters:
r - the rectange to calculate the intersection with

Returns:
a new rectangle bounding the intersection

Throws:
NullPointerException - if r is null

Since:
1.2


createUnion

public Rectangle2D createUnion(Rectangle2D r)
Returns the smallest rectangle that contains both this rectangle and the specified rectangle.
Overrides:
createUnion in interface Rectangle2D

Parameters:
r - the rectangle to compute the union with

Returns:
the smallest rectangle containing both rectangles

Throws:
NullPointerException - if r is null

Since:
1.2


equals

public boolean equals(Object obj)
Tests this rectangle for equality against the specified object. This will be true if an only if the specified object is an instance of Rectangle2D with the same coordinates and dimensions.
Overrides:
equals in interface Rectangle2D

Parameters:
obj - the object to test against for equality

Returns:
true if the specified object is equal to this one


getBounds

public Rectangle getBounds()
Returns the bounds of this rectangle. A pretty useless method, as this is already a rectangle; it is included to mimic the getBounds method in Component.
Specified by:
getBounds in interface Shape
Overrides:
getBounds in interface RectangularShape

Returns:
a copy of this rectangle

Since:
1.1

See Also:
setBounds(Rectangle)


getBounds2D

public Rectangle2D getBounds2D()
Returns the high-precision bounds of this rectangle. A pretty useless method, as this is already a rectangle.
Specified by:
getBounds2D in interface Shape
Overrides:
getBounds2D in interface Rectangle2D

Returns:
a copy of this rectangle

Since:
1.2

See Also:
setBounds(Rectangle)


getHeight

public double getHeight()
Get the height of the rectangle.
Overrides:
getHeight in interface RectangularShape

Returns:
the value of height, as a double


getLocation

public Point getLocation()
Returns the location of this rectangle, which is the coordinates of its upper left corner.

Returns:
the point where this rectangle is located

Since:
1.1

See Also:
setLocation(Point)


getSize

public Dimension getSize()
Returns the size of this rectangle.

Returns:
the size of this rectangle

Since:
1.1

See Also:
setSize(Dimension)


getWidth

public double getWidth()
Get the width of the rectangle.
Overrides:
getWidth in interface RectangularShape

Returns:
the value of width, as a double


getX

public double getX()
Get the X coordinate of the upper-left corner.
Overrides:
getX in interface RectangularShape

Returns:
the value of x, as a double


getY

public double getY()
Get the Y coordinate of the upper-left corner.
Overrides:
getY in interface RectangularShape

Returns:
the value of y, as a double


grow

public void grow(int h,
                 int v)
Expands the rectangle by the specified amount. The horizontal and vertical expansion values are applied both to the X,Y coordinate of this rectangle, and its width and height. Thus the width and height will increase by 2h and 2v accordingly.

Parameters:
h - the horizontal expansion value
v - the vertical expansion value


inside

public boolean inside(int x,
                      int y)

Deprecated. use contains(int,int) instead

Tests whether or not the specified point is inside this rectangle.

Parameters:
x - the X coordinate of the point to test
y - the Y coordinate of the point to test

Returns:
true if the point is inside the rectangle


intersection

public Rectangle intersection(Rectangle r)
Determines the rectangle which is formed by the intersection of this rectangle with the specified rectangle. If the two do not intersect, an empty rectangle will be returned (meaning the width and/or height will be non-positive).

Parameters:
r - the rectange to calculate the intersection with

Returns:
a new rectangle bounding the intersection

Throws:
NullPointerException - if r is null


intersects

public boolean intersects(Rectangle r)
Tests whether or not the specified rectangle intersects this rectangle. This means the two rectangles share at least one internal point.

Parameters:
r - the rectangle to test against

Returns:
true if the specified rectangle intersects this one

Throws:
NullPointerException - if r is null

Since:
1.2


isEmpty

public boolean isEmpty()
Tests whether or not this rectangle is empty. An empty rectangle has a non-positive width or height.
Overrides:
isEmpty in interface RectangularShape

Returns:
true if the rectangle is empty


move

public void move(int x,
                 int y)

Deprecated. use setLocation(int,int) instead

Moves the location of this rectangle by setting its upper left corner to the specified coordinates.

Parameters:
x - the new X coordinate for this rectangle
y - the new Y coordinate for this rectangle


outcode

public int outcode(double x,
                   double y)
Determine where the point lies with respect to this rectangle. The result will be the binary OR of the appropriate bit masks.
Overrides:
outcode in interface Rectangle2D

Parameters:
x - the x coordinate to check
y - the y coordinate to check

Returns:
the binary OR of the result

Since:
1.2

See Also:
Rectangle, Rectangle, Rectangle, Rectangle


reshape

public void reshape(int x,
                    int y,
                    int width,
                    int height)

Deprecated. use setBounds(int,int,int,int) instead

Updates this rectangle to have the specified dimensions.

Parameters:
x - the new X coordinate of the upper left hand corner
y - the new Y coordinate of the upper left hand corner
width - the new width of this rectangle
height - the new height of this rectangle


resize

public void resize(int width,
                   int height)

Deprecated. use setSize(int,int) instead

Sets the size of this rectangle based on the specified dimensions.

Parameters:
width - the new width of the rectangle
height - the new height of the rectangle


setBounds

public void setBounds(int x,
                      int y,
                      int width,
                      int height)
Updates this rectangle to have the specified dimensions.

Parameters:
x - the new X coordinate of the upper left hand corner
y - the new Y coordinate of the upper left hand corner
width - the new width of this rectangle
height - the new height of this rectangle

Since:
1.1


setBounds

public void setBounds(Rectangle r)
Updates this rectangle to match the dimensions of the specified rectangle.

Parameters:
r - the rectangle to update from

Throws:
NullPointerException - if r is null

Since:
1.1

See Also:
setBounds(int,int,int,int)


setLocation

public void setLocation(int x,
                        int y)
Moves the location of this rectangle by setting its upper left corner to the specified coordinates.

Parameters:
x - the new X coordinate for this rectangle
y - the new Y coordinate for this rectangle

Since:
1.1


setLocation

public void setLocation(Point p)
Moves the location of this rectangle by setting its upper left corner to the specified point.

Parameters:
p - the point to move the rectangle to

Throws:
NullPointerException - if p is null

Since:
1.1

See Also:
getLocation()


setRect

public void setRect(double x,
                    double y,
                    double width,
                    double height)
Updates this rectangle to have the specified dimensions, as rounded to integers.
Overrides:
setRect in interface Rectangle2D

Parameters:
x - the new X coordinate of the upper left hand corner
y - the new Y coordinate of the upper left hand corner
width - the new width of this rectangle
height - the new height of this rectangle

Since:
1.2


setSize

public void setSize(int width,
                    int height)
Sets the size of this rectangle based on the specified dimensions.

Parameters:
width - the new width of the rectangle
height - the new height of the rectangle

Since:
1.1


setSize

public void setSize(Dimension d)
Sets the size of this rectangle based on the specified dimensions.

Parameters:
d - the new dimensions of the rectangle

Throws:
NullPointerException - if d is null

Since:
1.1

See Also:
getSize()


toString

public String toString()
Returns a string representation of this rectangle. This is in the form getClass().getName() + "[x=" + x + ",y=" + y + ",width=" + width + ",height=" + height + ']'.
Overrides:
toString in interface Object

Returns:
a string representation of this rectangle


translate

public void translate(int dx,
                      int dy)
Translate the location of this rectangle by the given amounts.

Parameters:
dx - the x distance to move by
dy - the y distance to move by

See Also:
setLocation(int,int)


union

public Rectangle union(Rectangle r)
Returns the smallest rectangle that contains both this rectangle and the specified rectangle.

Parameters:
r - the rectangle to compute the union with

Returns:
the smallest rectangle containing both rectangles

Throws:
NullPointerException - if r is null


Rectangle.java -- represents a graphics rectangle Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.