public class Rectangle extends Rectangle2D implements Shape, Serializable
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.
Rectangle2D.Double, Rectangle2D.Float| Modifier and Type | Field and Description | 
|---|---|
| int | heightThe height of the  Rectangle. | 
| int | widthThe width of the  Rectangle. | 
| int | xThe X coordinate of the upper-left corner of the  Rectangle. | 
| int | yThe Y coordinate of the upper-left corner of the  Rectangle. | 
OUT_BOTTOM, OUT_LEFT, OUT_RIGHT, OUT_TOP| Constructor and Description | 
|---|
| Rectangle()Constructs a new  Rectanglewhose 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  Rectanglewhose top left corner is
 (0, 0) and whose width and height are specified
 by theDimensionargument. | 
| Rectangle(int width,
         int height)Constructs a new  Rectanglewhose 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  Rectanglewhose 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  Rectanglewhose upper-left corner is the
 specifiedPoint, and whose width and height are both zero. | 
| Rectangle(Point p,
         Dimension d) | 
| Rectangle(Rectangle r)Constructs a new  Rectangle, initialized to match
 the values of the specifiedRectangle. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | add(int newx,
   int newy)Adds a point, specified by the integer arguments  newx,newyto the bounds of thisRectangle. | 
| void | add(Point pt)Adds the specified  Pointto the bounds of thisRectangle. | 
| void | add(Rectangle r)Adds a  Rectangleto thisRectangle. | 
| boolean | contains(int x,
        int y)Checks whether or not this  Rectanglecontains the
 point at the specified location(x,y). | 
| boolean | contains(int X,
        int Y,
        int W,
        int H)Checks whether this  Rectangleentirely contains
 theRectangleat the specified location(X,Y)with the
 specified dimensions(W,H). | 
| boolean | contains(Point p)Checks whether or not this  Rectanglecontains the
 specifiedPoint. | 
| boolean | contains(Rectangle r)Checks whether or not this  Rectangleentirely contains
 the specifiedRectangle. | 
| Rectangle2D | createIntersection(Rectangle2D r)Returns a new  Rectangle2Dobject representing the
 intersection of thisRectangle2Dwith the specifiedRectangle2D. | 
| Rectangle2D | createUnion(Rectangle2D r)Returns a new  Rectangle2Dobject representing the
 union of thisRectangle2Dwith the specifiedRectangle2D. | 
| boolean | equals(Object obj)Checks whether two rectangles are equal. | 
| Rectangle | getBounds()Gets the bounding  Rectangleof thisRectangle. | 
| Rectangle2D | getBounds2D()Returns a high precision and more accurate bounding box of
 the  Shapethan thegetBoundsmethod. | 
| double | getHeight()Returns the height of the bounding  Rectangleindoubleprecision. | 
| Point | getLocation()Returns the location of this  Rectangle. | 
| Dimension | getSize()Gets the size of this  Rectangle, represented by
 the returnedDimension. | 
| double | getWidth()Returns the width of the bounding  Rectangleindoubleprecision. | 
| double | getX()Returns the X coordinate of the bounding  Rectangleindoubleprecision. | 
| double | getY()Returns the Y coordinate of the bounding  Rectangleindoubleprecision. | 
| void | grow(int h,
    int v)Resizes the  Rectangleboth 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  Rectanglewith the
 specifiedRectangle. | 
| boolean | intersects(Rectangle r)Determines whether or not this  Rectangleand the specifiedRectangleintersect. | 
| boolean | isEmpty()Determines whether the  RectangularShapeis 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  Rectangleof thisRectangleto the specifiedx,y,width,
 andheight. | 
| void | setBounds(Rectangle r)Sets the bounding  Rectangleof thisRectangleto match the specifiedRectangle. | 
| void | setLocation(int x,
           int y)Moves this  Rectangleto the specified location. | 
| void | setLocation(Point p)Moves this  Rectangleto the specified location. | 
| void | setRect(double x,
       double y,
       double width,
       double height)Sets the bounds of this  Rectangleto the integer bounds
 which encompass the specifiedx,y,width,
 andheight. | 
| void | setSize(Dimension d)Sets the size of this  Rectangleto match the
 specifiedDimension. | 
| void | setSize(int width,
       int height)Sets the size of this  Rectangleto the specified
 width and height. | 
| String | toString()Returns a  Stringrepresenting thisRectangleand its values. | 
| void | translate(int dx,
         int dy)Translates this  Rectanglethe 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  Rectanglewith the
 specifiedRectangle. | 
add, add, add, contains, contains, getPathIterator, getPathIterator, hashCode, intersect, intersects, intersectsLine, intersectsLine, outcode, setFrame, setRect, unionclone, contains, contains, getCenterX, getCenterY, getFrame, getMaxX, getMaxY, getMinX, getMinY, intersects, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonalfinalize, getClass, notify, notifyAll, wait, wait, waitcontains, contains, contains, contains, getPathIterator, getPathIterator, intersects, intersectspublic 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()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 Rectanglepublic 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 Rectanglepublic 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 Rectanglepublic 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 heightpublic 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.
 
 Note that the 
 definition of insideness can lead to situations where points
 on the defining outline of the shape may not be considered
 contained in the returned bounds object, but only in cases
 where those points are also not considered contained in the original
 shape.
 
 If a point is inside the shape according to the
 contains(point) method, then it must
 be inside the returned Rectangle2D bounds object according
 to the contains(point) method of the
 bounds. Specifically:
 
  shape.contains(p) requires bounds.contains(p)
 
 If a point is not inside the shape, then it might
 still be contained in the bounds object:
 
  bounds.contains(p) does not imply shape.contains(p)
 
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 locationpublic 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 testtrue 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 coordinatetrue 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 Rectangletrue if the Rectangle
            is contained entirely inside this Rectangle;
            false otherwisepublic 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 Rectangletrue 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 coordinatetrue 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 Rectangletrue 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 RectangleRectangle 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 RectangleRectangle 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 Rectanglepublic 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 coordinateRectangle2D.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 Rectangle2DRectangle2D 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 Rectangle2DRectangle2D 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 Rectangletrue if the objects are equal;
            false otherwise.Object.hashCode(), 
HashMap Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2012, Oracle and/or its affiliates.  All rights reserved.