JavaTM 2 Platform
Standard Ed. 5.0

java.awt.geom
类 Rectangle2D

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

public abstract class Rectangle2D
extends RectangularShape

Rectangle2D 类描述通过位置 (x, y) 和尺寸 (w x h) 定义的矩形。

此类是所有存储 2D 矩形对象的惟一抽象超类。坐标的实际存储表示形式要靠子类来完成。


嵌套类摘要
static class Rectangle2D.Double
          Double 类定义以 double 坐标指定的矩形。
static class Rectangle2D.Float
          Float 类定义以 float 坐标指定的矩形。
 
字段摘要
static int OUT_BOTTOM
          指示点位于此 Rectangle2D 下方的位掩码。
static int OUT_LEFT
          指示点位于此 Rectangle2D 左边的位掩码。
static int OUT_RIGHT
          指示点位于此 Rectangle2D 右边的位掩码。
static int OUT_TOP
          指示点位于此 Rectangle2D 上方的位掩码。
 
构造方法摘要
protected Rectangle2D()
          这是一个不可直接实例化的抽象类。
 
方法摘要
 void add(double newx, double newy)
          将由 double 精度参数 newxnewy 指定的点添加到此 Rectangle2D 中。
 void add(Point2D pt)
          将 Point2D 对象 pt 添加到此 Rectangle2D 中。
 void add(Rectangle2D r)
          将 Rectangle2D 对象添加到此 Rectangle2D 中。
 boolean contains(double x, double y)
          测试指定点是否在此 Rectangle2D 对象的边界内。
 boolean contains(double x, double y, double w, double h)
          测试此 Rectangle2D 的内部是否完全包含指定矩形坐标集。
abstract  Rectangle2D createIntersection(Rectangle2D r)
          返回一个新的 Rectangle2D 对象,它表示此 Rectangle2D 与指定 Rectangle2D 的交集。
abstract  Rectangle2D createUnion(Rectangle2D r)
          返回一个新的 Rectangle2D 对象,它表示此 Rectangle2D 与指定 Rectangle2D 的并集。
 boolean equals(Object obj)
          确定指定的 Object 是否与此 Rectangle2D 相等。
 Rectangle2D getBounds2D()
          返回此 Rectangle2D 的高精度边界框。
 PathIterator getPathIterator(AffineTransform at)
          返回定义此 Rectangle2D 边界的迭代对象。
 PathIterator getPathIterator(AffineTransform at, double flatness)
          返回定义变平的 Rectangle2D 边界的迭代对象。
 int hashCode()
          返回此 Rectangle2D 的哈希码。
static void intersect(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
          将指定的一对源 Rectangle2D 对象相交,并将结果置于指定的目标 Rectangle2D 对象中。
 boolean intersects(double x, double y, double w, double h)
          测试此 Rectangle2D 的内部是否与指定矩形坐标集的内部相交。
 boolean intersectsLine(double x1, double y1, double x2, double y2)
          测试指定线段是否与此 Rectangle2D 的内部相交。
 boolean intersectsLine(Line2D l)
          测试指定的线段是否与此 Rectangle2D 的内部相交。
abstract  int outcode(double x, double y)
          确定指定坐标相对于此 Rectangle2D 的位置。
 int outcode(Point2D p)
          确定指定的 Point2D 相对于此 Rectangle2D 的位置。
 void setFrame(double x, double y, double w, double h)
          将此 Rectangle2D 外部边界的位置和大小设置为指定矩形值。
abstract  void setRect(double x, double y, double w, double h)
          将此 Rectangle2D 的位置和大小设置为指定的 double 值。
 void setRect(Rectangle2D r)
          将此 Rectangle2D 设置为与指定的 Rectangle2D 相同。
static void union(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
          将一对源 Rectangle2D 对象相并,并将结果置于指定的目标 Rectangle2D 对象中。
 
从类 java.awt.geom.RectangularShape 继承的方法
clone, contains, contains, getBounds, getCenterX, getCenterY, getFrame, getHeight, getMaxX, getMaxY, getMinX, getMinY, getWidth, getX, getY, intersects, isEmpty, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal
 
从类 java.lang.Object 继承的方法
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

OUT_LEFT

public static final int OUT_LEFT
指示点位于此 Rectangle2D 左边的位掩码。

从以下版本开始:
1.2
另请参见:
常量字段值

OUT_TOP

public static final int OUT_TOP
指示点位于此 Rectangle2D 上方的位掩码。

从以下版本开始:
1.2
另请参见:
常量字段值

OUT_RIGHT

public static final int OUT_RIGHT
指示点位于此 Rectangle2D 右边的位掩码。

从以下版本开始:
1.2
另请参见:
常量字段值

OUT_BOTTOM

public static final int OUT_BOTTOM
指示点位于此 Rectangle2D 下方的位掩码。

从以下版本开始:
1.2
另请参见:
常量字段值
构造方法详细信息

Rectangle2D

protected Rectangle2D()
这是一个不可直接实例化的抽象类。特定于类型的实现子类可用于实例化,并提供用于存储满足以下各种存取器方法所需信息的许多格式。

另请参见:
Rectangle2D.Float, Rectangle2D.Double, Rectangle
方法详细信息

setRect

public abstract void setRect(double x,
                             double y,
                             double w,
                             double h)
将此 Rectangle2D 的位置和大小设置为指定的 double 值。

参数:
x, y - 用于设置此 Rectangle2D 左上角位置的坐标
w - 用于设置此 Rectangle2D 宽度的值
h - 用于设置此 Rectangle2D 高度的值
从以下版本开始:
1.2

setRect

public void setRect(Rectangle2D r)
将此 Rectangle2D 设置为与指定的 Rectangle2D 相同。

参数:
r - 指定的 Rectangle2D
从以下版本开始:
1.2

intersectsLine

public boolean intersectsLine(double x1,
                              double y1,
                              double x2,
                              double y2)
测试指定线段是否与此 Rectangle2D 的内部相交。

参数:
x1, y1 - 指定线段的第一个端点
x2, y2 - 指定线段的第二个端点
返回:
如果指定线段与此 Rectangle2D 的内部相交,则返回 true;否则返回 false
从以下版本开始:
1.2

intersectsLine

public boolean intersectsLine(Line2D l)
测试指定的线段是否与此 Rectangle2D 的内部相交。

参数:
l - 要测试是否与此 Rectangle2D 内部相交的指定 Line2D
返回:
如果指定 Line2D 与此 Rectangle2D 的内部相交,则返回 true;否则返回 false
从以下版本开始:
1.2

outcode

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

参数:
x, y - 指定的坐标
返回:
所有适当外码的逻辑或。
从以下版本开始:
1.2
另请参见:
OUT_LEFT, OUT_TOP, OUT_RIGHT, OUT_BOTTOM

outcode

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

参数:
p - 指定的 Point2D
返回:
所有适当外码的逻辑或。
从以下版本开始:
1.2
另请参见:
OUT_LEFT, OUT_TOP, OUT_RIGHT, OUT_BOTTOM

setFrame

public void setFrame(double x,
                     double y,
                     double w,
                     double h)
将此 Rectangle2D 外部边界的位置和大小设置为指定矩形值。

指定者:
RectangularShape 中的 setFrame
参数:
x, y - 用于设置此 Rectangle2D 外部边界左上角位置的坐标
w - 用于设置此 Rectangle2D 外部边界宽度的值
h - 用于设置此 Rectangle2D 外部边界高度的值
从以下版本开始:
1.2
另请参见:
RectangularShape.getFrame()

getBounds2D

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

返回:
Rectangle2D 的边界框。
从以下版本开始:
1.2
另请参见:
Shape.getBounds()

contains

public boolean contains(double x,
                        double y)
测试指定点是否在此 Rectangle2D 对象的边界内。

参数:
x, y - 要测试的坐标
返回:
如果指定坐标在此 Rectangle2D 的边界内,则返回 true;否则返回 false
从以下版本开始:
1.2

intersects

public boolean intersects(double x,
                          double y,
                          double w,
                          double h)
测试此 Rectangle2D 的内部是否与指定矩形坐标集的内部相交。

参数:
x, y - 指定的矩形坐标集左上角的坐标
w - 指定的矩形坐标集的宽度
h - 指定的矩形坐标集的高度
返回:
如果此 Rectangle2D 与指定矩形坐标集的内部相交,则返回 true;否则返回 false
从以下版本开始:
1.2
另请参见:
Area

contains

public boolean contains(double x,
                        double y,
                        double w,
                        double h)
测试此 Rectangle2D 的内部是否完全包含指定矩形坐标集。

参数:
x, y - 指定的矩形坐标集左上角的坐标
w - 指定的矩形坐标集的宽度
h - 指定的矩形坐标集的高度
返回:
如果此 Rectangle2D 完全包含指定的矩形坐标集,则返回 true;否则返回 false
从以下版本开始:
1.2
另请参见:
Area, Shape.intersects(double, double, double, double)

createIntersection

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

参数:
r - 与此 Rectangle2D 相交的 Rectangle2D
返回:
同时被指定的 Rectangle2D 和此 Rectangle2D 包含的最大的 Rectangle2D
从以下版本开始:
1.2

intersect

public static void intersect(Rectangle2D src1,
                             Rectangle2D src2,
                             Rectangle2D dest)
将指定的一对源 Rectangle2D 对象相交,并将结果置于指定的目标 Rectangle2D 对象中。为了避免创建第三个 Rectangle2D 对象,将其中一个源矩形作为目标矩形也是可以的,但这样此方法将改写源矩形的初始点。

参数:
src1 - 要彼此相交的一对 Rectangle2D 对象中的第一个对象
src2 - 要彼此相交的一对 Rectangle2D 对象中的第二个对象
dest - 保存 src1src2 相交结果的 Rectangle2D
从以下版本开始:
1.2

createUnion

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

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

union

public static void union(Rectangle2D src1,
                         Rectangle2D src2,
                         Rectangle2D dest)
将一对源 Rectangle2D 对象相并,并将结果置于指定的目标 Rectangle2D 对象中。为了避免创建第三个 Rectangle2D 对象,将其中一个源矩形作为目标矩形也是可以的,但这样此方法将改写源矩形的初始点。

参数:
src1 - 要彼此相并的一对 Rectangle2D 对象中的第一个对象
src2 - 要彼此相并的 Rectangle2D 对象中的第二个对象
dest - 保存 src1src2 相并结果的 Rectangle2D
从以下版本开始:
1.2

add

public void add(double newx,
                double newy)
将由 double 精度参数 newxnewy 指定的点添加到此 Rectangle2D 中。所得到的 Rectangle2D 是同时包含原始 Rectangle2D 和指定点的最小的 Rectangle2D

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

参数:
newx, newy - 新点的坐标
从以下版本开始:
JDK1.0

add

public void add(Point2D pt)
Point2D 对象 pt 添加到此 Rectangle2D 中。所得到的 Rectangle2D 是同时包含原始 Rectangle2D 和指定的 Point2D 的最小的 Rectangle2D

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

参数:
pt - 添加到此 Rectangle2D 中的新 Point2D
从以下版本开始:
JDK1.0

add

public void add(Rectangle2D r)
Rectangle2D 对象添加到此 Rectangle2D 中。得到的 Rectangle2D 是两个 Rectangle2D 对象的并集。

参数:
r - 要添加到此 Rectangle2D 中的 Rectangle2D
从以下版本开始:
JDK1.0

getPathIterator

public PathIterator getPathIterator(AffineTransform at)
返回定义此 Rectangle2D 边界的迭代对象。此类的迭代器是多线程安全的,这意味着此 Rectangle2D 类保证对此 Rectangle2D 对象几何形状所作的修改不会对该几何形状中正在进行的迭代产生影响。

参数:
at - 一个可选的 AffineTransform,用于在迭代中返回的坐标,如果需要未转换的坐标,则为 null
返回:
返回此 Rectangle2D 轮廓几何形状的 PathIterator 对象,一次一段。
从以下版本开始:
1.2

getPathIterator

public PathIterator getPathIterator(AffineTransform at,
                                    double flatness)
返回定义变平的 Rectangle2D 边界的迭代对象。因为矩形已经是平的,所以 flatness 参数会被忽略。此类的迭代器是多线程安全的,这意味着此 Rectangle2D 类保证对此 Rectangle2D 对象几何形状所作的修改不会对该几何形状中正在进行的迭代产生影响。

指定者:
接口 Shape 中的 getPathIterator
覆盖:
RectangularShape 中的 getPathIterator
参数:
at - 一个可选 AffineTransform,用于在迭代中返回的坐标,如果需要未转换的坐标,则为 null
flatness - 用来近似曲线段的直线段偏离原始曲线上任一点的最大距离。因为矩形已经是平的,所以 flatness 参数会被忽略。
返回:
PathIterator 对象,该对象返回此 Rectangle2D 的轮廓的几何形状,一次一段。
从以下版本开始:
1.2

hashCode

public int hashCode()
返回此 Rectangle2D 的哈希码。

覆盖:
Object 中的 hashCode
返回:
Rectangle2D 对象的哈希码。
另请参见:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
确定指定的 Object 是否与此 Rectangle2D 相等。如果指定的 ObjectRectangle2D 的实例并且位置和大小与此 Rectangle2D 相同,则其与此 Rectangle2D 相等。

覆盖:
Object 中的 equals
参数:
obj - 要与此 Rectangle2D 进行比较的 Object
返回:
如果 objRectangle2D 的实例并且与 Rectangle2D 具有相同值,则返回 true;否则返回 false
从以下版本开始:
1.2
另请参见:
Object.hashCode(), Hashtable

JavaTM 2 Platform
Standard Ed. 5.0

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

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