JavaTM 2 Platform
Standard Ed. 5.0

java.awt
类 Rectangle

java.lang.Object
  继承者 java.awt.geom.RectangularShape
      继承者 java.awt.geom.Rectangle2D
          继承者 java.awt.Rectangle
所有已实现的接口:
Shape, Serializable, Cloneable
直接已知子类:
DefaultCaret

public class Rectangle
extends Rectangle2D
implements Shape, Serializable

Rectangle 指定了坐标空间中的一个区域,通过 Rectangle 对象的左上顶点的坐标(xy)、宽度和高度可以定义这个区域。

Rectangle 对象的 widthheightpublic 字段。创建 Rectangle 的构造方法,以及可以修改该对象的方法,都不会禁止将 width 或 height 设置为负值。

如果 Rectangle 的 width 或 height 为负值,则认为 Rectangle 为空。如果 Rectangle 为空,则 isEmpty 方法将返回 true。空 Rectangle 中不包含任何点,或者说其内部没有任何点。但是,widthheight 的值仍然有效。空 Rectangle 在坐标空间中仍有一个位置,改变其大小或位置的方法仍然有效。如果任何参与操作的 Rectangle 对象有一个负的 widthheight,则对过个 Rectangle 进行操作的方法的行为是不确定的。这些方法包括 intersectsintersectionunion

从以下版本开始:
JDK1.0
另请参见:
序列化表格

嵌套类摘要
 
从类 java.awt.geom.Rectangle2D 继承的嵌套类/接口
Rectangle2D.Double, Rectangle2D.Float
 
字段摘要
 int height
          Rectangle 的高度。
 int width
          Rectangle 的宽度。
 int x
          Rectanglex 坐标。
 int y
          Rectangley 坐标。
 
从类 java.awt.geom.Rectangle2D 继承的字段
OUT_BOTTOM, OUT_LEFT, OUT_RIGHT, OUT_TOP
 
构造方法摘要
Rectangle()
          构造一个新的 Rectangle,其左上角的坐标为(0,0),宽度和高度均为零。
Rectangle(Dimension d)
          构造一个新的 Rectangle,其左上角为(0,0),其宽度和高度由 Dimension 参数指定。
Rectangle(int width, int height)
          构造一个新的 Rectangle,其左上角的坐标为(0,0),而其宽度和高度由同名的参数指定。
Rectangle(int x, int y, int width, int height)
          构造一个新的 Rectangle,其左上角被指定为(xy),而其宽度和高度由同名称的参数指定。
Rectangle(Point p)
          构造一个新的 Rectangle,其左上顶点是指定的 Point,并且其宽度和高度均为零。
Rectangle(Point p, Dimension d)
          构造一个新的 Rectangle,其左上角由 Point 参数指定,其宽度和高度由 Dimension 参数指定。
Rectangle(Rectangle r)
          构造一个新的 Rectangle,并将其初始化,以匹配指定 Rectangle 的值。
 
方法摘要
 void add(int newx, int newy)
          将一个点添加到此 Rectangle,这个点由整数参数 newxnewy 指定。
 void add(Point pt)
          将指定的 Point 添加到此 Rectangle 中。
 void add(Rectangle r)
          将一个 Rectangle 添加到此 Rectangle 中。
 boolean contains(int x, int y)
          检查此 Rectangle 是否包含指定位置的点(xy)。
 boolean contains(int X, int Y, int W, int H)
          检查此 Rectangle 是否完整地包含指定位置(XY)上具有指定尺寸(WH)的 Rectangle
 boolean contains(Point p)
          检查此 Rectangle 是否包含指定的 Point
 boolean contains(Rectangle r)
          检查此 Rectangle 是否完整地包含指定的 Rectangle
 Rectangle2D createIntersection(Rectangle2D r)
          返回一个新的 Rectangle2D 对象,它表示此 Rectangle 与指定 Rectangle2D 的交集。
 Rectangle2D createUnion(Rectangle2D r)
          返回一个新的 Rectangle2D 对象,它表示此 Rectangle 与指定 Rectangle2D 的并集。
 boolean equals(Object obj)
          检查两个矩形是否相等。
 Rectangle getBounds()
          获得此 Rectangle 的边界 Rectangle
 Rectangle2D getBounds2D()
          返回此 rectangle 的高精度边界框。
 double getHeight()
          以 double 精度形式返回边界 Rectangle 的高度。
 Point getLocation()
          返回此 Rectangle 的位置。
 Dimension getSize()
          获得此 Rectangle 的大小,用返回的 Dimension 表示。
 double getWidth()
          以 double 精度形式返回边界 Rectangle 的宽度。
 double getX()
          以 double 精度形式返回边界 Rectangle 的 X 坐标。
 double getY()
          以 double 精度形式返回边界 Rectangle 的 Y 坐标。
 void grow(int h, int v)
          在水平方向和垂直方向上重新设置 Rectangle 的大小。
 boolean inside(int X, int Y)
          已过时。 从 JDK version 1.1 开始,由 contains(int, int) 取代。
 Rectangle intersection(Rectangle r)
          计算此 Rectangle 与指定 Rectangle 的交集。
 boolean intersects(Rectangle r)
          确定此 Rectangle 是否与指定 Rectangle 相交。
 boolean isEmpty()
          确定此 Rectangle 是否为空。
 void move(int x, int y)
          已过时。 从 JDK version 1.1 开始,由 setLocation(int, int) 取代。
 int outcode(double x, double y)
          确定指定坐标相对于此 Rectangle 的位置。
 void reshape(int x, int y, int width, int height)
          已过时。 从 JDK version 1.1 开始,由 setBounds(int, int, int, int) 取代。
 void resize(int width, int height)
          已过时。 从 JDK version 1.1 开始,由 setSize(int, int) 取代。
 void setBounds(int x, int y, int width, int height)
          将此 Rectangle 的边界 Rectangle 设置为指定的 xywidthheight
 void setBounds(Rectangle r)
          设置此 Rectangle 的边界 Rectangle,以匹配指定的 Rectangle
 void setLocation(int x, int y)
          将此 Rectangle 移动到指定位置。
 void setLocation(Point p)
          将此 Rectangle 移动到指定位置。
 void setRect(double x, double y, double width, double height)
          将此 Rectangle 的边界设置为指定的 xywidthheight
 void setSize(Dimension d)
          设置此 Rectangle 的大小,以匹配指定的 Dimension
 void setSize(int width, int height)
          将此 Rectangle 的大小设置为指定的宽度和高度。
 String toString()
          返回表示此 Rectangle 及其值的 String
 void translate(int x, int y)
          将此 Rectangle 沿 x 坐标轴向右,沿 y 坐标轴向下移动指定距离。
 Rectangle union(Rectangle r)
          计算此 Rectangle 与指定 Rectangle 的并集。
 
从类 java.awt.geom.Rectangle2D 继承的方法
add, add, add, contains, contains, getPathIterator, getPathIterator, hashCode, intersect, intersects, intersectsLine, intersectsLine, outcode, setFrame, setRect, union
 
从类 java.awt.geom.RectangularShape 继承的方法
clone, contains, contains, getCenterX, getCenterY, getFrame, getMaxX, getMaxY, getMinX, getMinY, intersects, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal
 
从类 java.lang.Object 继承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait
 
从接口 java.awt.Shape 继承的方法
contains, contains, contains, contains, getPathIterator, getPathIterator, intersects, intersects
 

字段详细信息

x

public int x
Rectanglex 坐标。

另请参见:
setLocation(int, int), getLocation()

y

public int y
Rectangley 坐标。

另请参见:
setLocation(int, int), getLocation()

width

public int width
Rectangle 的宽度。

从以下版本开始:
JDK1.0.
另请参见:
setSize(int, int), getSize()

height

public int height
Rectangle 的高度。

另请参见:
setSize(int, int), getSize()
构造方法详细信息

Rectangle

public Rectangle()
构造一个新的 Rectangle,其左上角的坐标为(0,0),宽度和高度均为零。


Rectangle

public Rectangle(Rectangle r)
构造一个新的 Rectangle,并将其初始化,以匹配指定 Rectangle 的值。

参数:
r - 一个 Rectangle,要从中将初始值复制到新构造的 Rectangle
从以下版本开始:
JDK1.1

Rectangle

public Rectangle(int x,
                 int y,
                 int width,
                 int height)
构造一个新的 Rectangle,其左上角被指定为(xy),而其宽度和高度由同名称的参数指定。

参数:
x - 指定的 x 坐标
y - 指定的 y 坐标
width - Rectangle 的宽度
height - Rectangle 的高度

Rectangle

public Rectangle(int width,
                 int height)
构造一个新的 Rectangle,其左上角的坐标为(0,0),而其宽度和高度由同名的参数指定。

参数:
width - Rectangle 的宽度
height - Rectangle 的高度

Rectangle

public Rectangle(Point p,
                 Dimension d)
构造一个新的 Rectangle,其左上角由 Point 参数指定,其宽度和高度由 Dimension 参数指定。

参数:
p - 一个 Point,它是 Rectangle 的左上角
d - 一个 Dimension,表示 Rectangle 的宽度和高度

Rectangle

public Rectangle(Point p)
构造一个新的 Rectangle,其左上顶点是指定的 Point,并且其宽度和高度均为零。

参数:
p - 一个 Point,它是 Rectangle 的左上顶点

Rectangle

public Rectangle(Dimension d)
构造一个新的 Rectangle,其左上角为(0,0),其宽度和高度由 Dimension 参数指定。

参数:
d - 一个 Dimension,用于指定宽度和高度
方法详细信息

getX

public double getX()
double 精度形式返回边界 Rectangle 的 X 坐标。

指定者:
RectangularShape 中的 getX
返回:
边界 Rectangle 的 x 坐标。

getY

public double getY()
double 精度形式返回边界 Rectangle 的 Y 坐标。

指定者:
RectangularShape 中的 getY
返回:
边界 Rectangle 的 y 坐标。

getWidth

public double getWidth()
double 精度形式返回边界 Rectangle 的宽度。

指定者:
RectangularShape 中的 getWidth
返回:
边界 Rectangle 的宽度。

getHeight

public double getHeight()
double 精度形式返回边界 Rectangle 的高度。

指定者:
RectangularShape 中的 getHeight
返回:
边界 Rectangle 的高度。

getBounds

public Rectangle getBounds()
获得此 Rectangle 的边界 Rectangle

包含此方法是出于完整性考虑,它与 ComponentgetBounds 方法相似。

指定者:
接口 Shape 中的 getBounds
覆盖:
RectangularShape 中的 getBounds
返回:
一个新的 Rectangle,它等同于此 Rectangle 的边界 Rectangle
从以下版本开始:
JDK1.1
另请参见:
Component.getBounds(), setBounds(Rectangle), setBounds(int, int, int, int)

getBounds2D

public Rectangle2D getBounds2D()
返回此 rectangle 的高精度边界框。

指定者:
接口 Shape 中的 getBounds2D
覆盖:
Rectangle2D 中的 getBounds2D
返回:
Rectangle2D 的边界框。
从以下版本开始:
1.2
另请参见:
Shape.getBounds()

setBounds

public void setBounds(Rectangle r)
设置此 Rectangle 的边界 Rectangle,以匹配指定的 Rectangle

包含此方法是出于完整性考虑,它与 ComponentsetBounds 方法相似。

参数:
r - 指定的 Rectangle
从以下版本开始:
JDK1.1
另请参见:
getBounds(), Component.setBounds(java.awt.Rectangle)

setBounds

public void setBounds(int x,
                      int y,
                      int width,
                      int height)
将此 Rectangle 的边界 Rectangle 设置为指定的 xywidthheight

包含此方法是出于完整性考虑,它与 ComponentsetBounds 方法相似。

参数:
x - 此 Rectangle 的左上角的新 x 坐标
y - 此 Rectangle 的左上角的新 y 坐标
width - 此 Rectangle 的新宽度
height - 此 Rectangle 的新高度
从以下版本开始:
JDK1.1
另请参见:
getBounds(), Component.setBounds(int, int, int, int)

setRect

public void setRect(double x,
                    double y,
                    double width,
                    double height)
将此 Rectangle 的边界设置为指定的 xywidthheight。包含此方法是出于完整性考虑,它与 ComponentsetBounds 方法相似。

指定者:
Rectangle2D 中的 setRect
参数:
x - 指定矩形的左上角的 x 坐标
y - 指定矩形的左上角的 y 坐标
width - Dimension 对象的新宽度
height - Dimension 对象的新高度

reshape

@Deprecated
public void reshape(int x,
                               int y,
                               int width,
                               int height)
已过时。 从 JDK version 1.1 开始,由 setBounds(int, int, int, int) 取代。

将此 Rectangle 的边界 Rectangle 设置为指定的 xywidthheight

参数:
x - 此 Rectangle 的左上角的新 x 坐标
y - 此 Rectangle 的左上角的新 y 坐标
width - 此 Rectangle 的新宽度
height - 此 Rectangle 的新高度

getLocation

public Point getLocation()
返回此 Rectangle 的位置。

包含此方法是出于完整性考虑,它与 ComponentgetLocation 方法相似。

返回:
一个 Point,它是此 Rectangle 的左上角。
从以下版本开始:
JDK1.1
另请参见:
Component.getLocation(), setLocation(Point), setLocation(int, int)

setLocation

public void setLocation(Point p)
将此 Rectangle 移动到指定位置。

包含此方法是出于完整性考虑,它与 ComponentsetLocation 方法相似。

参数:
p - 为此 Rectangle 指定新位置的 Point
从以下版本开始:
JDK1.1
另请参见:
Component.setLocation(java.awt.Point), getLocation()

setLocation

public void setLocation(int x,
                        int y)
将此 Rectangle 移动到指定位置。

包含此方法是出于完整性考虑,它与 ComponentsetLocation 方法相似。

参数:
x - 新位置的 x 坐标
y - 新位置的 y 坐标
从以下版本开始:
JDK1.1
另请参见:
getLocation(), Component.setLocation(int, int)

move

@Deprecated
public void move(int x,
                            int y)
已过时。 从 JDK version 1.1 开始,由 setLocation(int, int) 取代。

将此 Rectangle 移动到指定位置。

参数:
x - 新位置的 x 坐标
y - 新位置的 y 坐标

translate

public void translate(int x,
                      int y)
将此 Rectangle 沿 x 坐标轴向右,沿 y 坐标轴向下移动指定距离。

参数:
x - 沿 x 坐标轴移动此 Rectangle 的距离
y - 沿 y 坐标轴移动此 Rectangle 的距离
另请参见:
setLocation(int, int), setLocation(java.awt.Point)

getSize

public Dimension getSize()
获得此 Rectangle 的大小,用返回的 Dimension 表示。

包含此方法是出于完整性考虑,它与 ComponentgetSize 方法相似。

返回:
一个 Dimension,表示此 Rectangle 的大小。
从以下版本开始:
JDK1.1
另请参见:
Component.getSize(), setSize(Dimension), setSize(int, int)

setSize

public void setSize(Dimension d)
设置此 Rectangle 的大小,以匹配指定的 Dimension

包含此方法是出于完整性考虑,它与 ComponentsetSize 方法相似。

参数:
d - Dimension 对象的新大小
从以下版本开始:
JDK1.1
另请参见:
Component.setSize(java.awt.Dimension), getSize()

setSize

public void setSize(int width,
                    int height)
将此 Rectangle 的大小设置为指定的宽度和高度。

包含此方法是出于完整性考虑,它与 ComponentsetSize 方法相似。

参数:
width - 此 Rectangle 的新宽度
height - 此 Rectangle 的新高度
从以下版本开始:
JDK1.1
另请参见:
Component.setSize(int, int), getSize()

resize

@Deprecated
public void resize(int width,
                              int height)
已过时。 从 JDK version 1.1 开始,由 setSize(int, int) 取代。

将此 Rectangle 的大小设置为指定的宽度和高度。

参数:
width - 此 Rectangle 的新宽度
height - 此 Rectangle 的新高度

contains

public boolean contains(Point p)
检查此 Rectangle 是否包含指定的 Point

参数:
p - 要测试的 Point
返回:
如果 Pointxy)在此 Rectangle 中,则返回 true;否则返回 false
从以下版本开始:
JDK1.1

contains

public boolean contains(int x,
                        int y)
检查此 Rectangle 是否包含指定位置的点(xy)。

参数:
x - 指定的 x 坐标
y - 指定的 y 坐标
返回:
如果这个点(xy)在此 Rectangle 中,则返回 true;否则返回 false
从以下版本开始:
JDK1.1

contains

public boolean contains(Rectangle r)
检查此 Rectangle 是否完整地包含指定的 Rectangle

参数:
r - 指定的 Rectangle
返回:
如果 Rectangle 完整地包含在此 Rectangle 中,则返回 true;否则返回 false
从以下版本开始:
JDK1.2

contains

public boolean contains(int X,
                        int Y,
                        int W,
                        int H)
检查此 Rectangle 是否完整地包含指定位置(XY)上具有指定尺寸(WH)的 Rectangle

参数:
X - 指定的 x 坐标
Y - 指定的 y 坐标
W - Rectangle 的宽度
H - Rectangle 的高度
返回:
如果由(XYWH)指定的 Rectangle 完全包含在此 Rectangle 中,则返回 true;否则返回 false
从以下版本开始:
JDK1.1

inside

@Deprecated
public boolean inside(int X,
                                 int Y)
已过时。 从 JDK version 1.1 开始,由 contains(int, int) 取代。

检查此 Rectangle 是否包含指定位置的点(XY)。

参数:
X - 指定的 x 坐标
Y - 指定的 y 坐标
返回:
如果这个点(XY)在此 Rectangle 中,则返回 true,否则返回 false

intersects

public boolean intersects(Rectangle r)
确定此 Rectangle 是否与指定 Rectangle 相交。如果两个矩形的交集为非空,则它们是相交的。

参数:
r - 指定的 Rectangle
返回:
如果指定的 Rectangle 与此 Rectangle 相交,则返回 true;否则返回 false

intersection

public Rectangle intersection(Rectangle r)
计算此 Rectangle 与指定 Rectangle 的交集。返回一个新的 Rectangle,它表示两个矩形的交集。如果两个矩形没有相交,则结果将是一个空矩形。

参数:
r - 指定的 Rectangle
返回:
包含在指定 Rectangle 和此 Rectangle 的最大的 Rectangle;如果两个矩形没有相交,则返回一个空矩形。

union

public Rectangle union(Rectangle r)
计算此 Rectangle 与指定 Rectangle 的并集。返回一个表示两个矩形的并集的新 Rectangle

参数:
r - 指定的 Rectangle
返回:
包含指定 Rectangle 和此 Rectangle 的最小的 Rectangle

add

public void add(int newx,
                int newy)
将一个点添加到此 Rectangle,这个点由整数参数 newxnewy 指定。所得到的 Rectangle 是包含原始 Rectangle 和指定点的最小的 Rectangle

在添加一个点后,调用将添加的点用作参数的 contains 方法不一定返回 true。对于 Rectangle 的右边和底部边界线上的点,contains 方法不返回 true。所以,如果添加的点落在放大的 Rectangle 的右边和底部边界线上,则 contains 将针对该点返回 false

参数:
newx - 新点的 x 坐标
newy - 新点的 y 坐标

add

public void add(Point pt)
将指定的 Point 添加到此 Rectangle 中。所得到的 Rectangle 是包含原始 Rectangle 和指定 Point 的最小的 Rectangle

在添加一个 Point 后,调用将添加的 Point 用作参数的 contains 方法不一定返回 true。对于 Rectangle 的右边和底部边界线上的点,contains 方法不返回 true。所以,如果添加的 Point 落在放大的 Rectangle 的右边和底部边界线上,则 contains 将针对该 Point 返回 false

参数:
pt - 添加到此 Rectangle 中的新 Point

add

public void add(Rectangle r)
将一个 Rectangle 添加到此 Rectangle 中。所得到的 Rectangle 是两个矩形的并集。

参数:
r - 指定的 Rectangle

grow

public void grow(int h,
                 int v)
在水平方向和垂直方向上重新设置 Rectangle 的大小。

此方法能修改 Rectangle,使它左边和右边都增加 h 单位,顶部和底部都增加 v 单位。

新的 Rectangle 的左上角是(x - hy - v),宽度是 width + 2h,高度是 height + 2v

如果为 hv 提供负值,则 Rectangle 的大小也将相应地缩小。grow 方法不检查所得到的 widthheight 值是否为非负值。

参数:
h - 水平扩展
v - 垂直扩展

isEmpty

public boolean isEmpty()
确定此 Rectangle 是否为空。如果宽度或高度小于等于零,则 Rectangle 为空。

指定者:
RectangularShape 中的 isEmpty
返回:
如果此 Rectangle 为空,则返回 true;否则返回 false

outcode

public int outcode(double x,
                   double y)
确定指定坐标相对于此 Rectangle 的位置。此方法计算了适当掩码值的二进制 OR,这些值针对此 Rectangle 的每个边指示了指定坐标是否在此 Rectangle 的其余边缘的同一侧。

指定者:
Rectangle2D 中的 outcode
参数:
x - 指定的 x 坐标
y - 指定的 y 坐标
返回:
所有适当输出代码的逻辑 OR。
从以下版本开始:
1.2
另请参见:
Rectangle2D.OUT_LEFT, Rectangle2D.OUT_TOP, Rectangle2D.OUT_RIGHT, Rectangle2D.OUT_BOTTOM

createIntersection

public Rectangle2D createIntersection(Rectangle2D r)
返回一个新的 Rectangle2D 对象,它表示此 Rectangle 与指定 Rectangle2D 的交集。

指定者:
Rectangle2D 中的 createIntersection
参数:
r - 与此 Rectangle 相交的 Rectangle2D
返回:
包含在指定 Rectangle2D 和此 Rectangle 的最大的 Rectangle2D
从以下版本开始:
1.2

createUnion

public Rectangle2D createUnion(Rectangle2D r)
返回一个新的 Rectangle2D 对象,它表示此 Rectangle 与指定 Rectangle2D 的并集。

指定者:
Rectangle2D 中的 createUnion
参数:
r - 与此 Rectangle 合并的 Rectangle2D
返回:
包含指定 Rectangle2D 和此 Rectangle 的最小的 Rectangle2D
从以下版本开始:
1.2

equals

public boolean equals(Object obj)
检查两个矩形是否相等。

当且仅当参数不是 null,而是一个与此 Rectangle 具有相同的左上角、宽度和高度的 Rectangle 对象时,结果才为 true

覆盖:
Rectangle2D 中的 equals
参数:
obj - 将与此 Rectangle 进行比较的 Object
返回:
如果对象相等,则返回 true;否则返回 false
另请参见:
Object.hashCode(), Hashtable

toString

public String toString()
返回表示此 Rectangle 及其值的 String

覆盖:
Object 中的 toString
返回:
表示此 Rectangle 对象的坐标和大小值的 String

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策