java.awt

接口
异常
错误
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 对象左上方的点 (x,y)、宽度和高度可以定义这个区域。

Rectangle 对象的 widthheightpublic 字段。创建 Rectangle 的构造方法,以及可以修改该对象的方法,都允许将 width 和 height 设置为负值。

对于 width 或 height 正好为 0 的 Rectangle,它在相应轴上存在维数为 0 的位置,但在这种情况下,也可将其视为空的 Rectangle。对于这种 RectangleisEmpty() 方法将返回 ture。 如果两个维数中任一维数为 0,则测试空 Rectangle 是否包含某个点或是否与某个矩形相交的方法将始终返回 false。用点或矩形合并这种 Rectangle 的方法将在结果中包含 Rectangle 在该轴上的位置,正如调用 add(Point) 方法一样。

对于 width 或 height 为负值的 Rectangle,它在相应轴上并不存在维数为负的位置或维数。这种 Rectangle 将被视为不存在相应的轴上。对于包含计算,这种 Rectangle 也为空,测试它是否包含某个点或是否与某个矩形相交的方法将始终返回 false。用点或矩形合并这种 Rectangle 的方法将在生成结果时完全忽略 Rectangle。如果合并了两个 Rectangle 对象,且每个对象都具有一个负维数,则结果中至少有一个负维数。

对于仅影响 Rectangle 位置的方法,无论 Rectangle 是否沿任一轴具有负维数或 0 维数,都将在其位置上进行操作。

注意,用默认不带参数的构造方法构造的 Rectangle 将具有 0x0 维数,因此为空。Rectangle 仍然具有 (0,0) 的位置,且将该位置用于合并和添加操作。因此,尝试累积点集合范围的代码最初应使用具体的负 width 和负 height 来构造 Rectangle,或者应使用该集合中的第一个点构造 Rectangle。例如:

Rectangle bounds = new Rectangle(0, 0, -1, -1);
for (int i = 0; i < points.length; i++) {
bounds.add(points[i]);
     }
 
如果知道点数组中至少包含了一个点,那么也可以:
Rectangle bounds = new Rectangle(points[0]);
for (int i = 1; i < points.length; i++) {
bounds.add(points[i]);
     }
 

此类用 32 位整数存储其位置和维数。通常情况下,这些操作可能生成超过 32 位整数范围的结果。这些方法将以某种方式计算它们的结果,该方式可以避免任何针对中间结果的 32 位溢出,然后将选择最佳的表示方式,将最终结果存储回保存位置和维数的 32 位字段中。通过将真实结果修改为最接近的 32 位值,将得到的位置存储到 xy 字段中。存储到 widthheight 维数字段中的值将被作为 32 位值选择,这些值尽可能包含真实结果的最大部分。通常情况下,这意味着维数将被独立地修改为 32 位整数范围内,但以下情况除外:如果必须移动位置才能将其存储到 32 位字段对中,则将相对于位置的“最佳表示形式”对维数进行调整;如果真实结果有一个负维数,并因此沿一个或两个轴不存在,则存储的维数在这些轴中将为负数;如果真实结果有一个位置可以在 32 位整数范围内表示,但沿一个或两个轴维数为 0,则存储的维数在这些轴中将为 0。

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

嵌套类摘要
 
从类 java.awt.geom.Rectangle2D 继承的嵌套类/接口
Rectangle2D.Double, Rectangle2D.Float
 
字段摘要
 int height
          Rectangle 的高度。
 int width
          Rectangle 的宽度。
 int x
          Rectangle 左上角的 X 坐标。
 int y
          Rectangle 左上角的 Y 坐标。
 
从类 java.awt.geom.Rectangle2D 继承的字段
OUT_BOTTOM, OUT_LEFT, OUT_RIGHT, OUT_TOP
 
构造方法摘要
Rectangle()
          构造一个新的 Rectangle,其左上角的坐标为 (0,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,其左上角被指定为 (x,y),其宽度和高度由同名的参数指定。
Rectangle(Point p)
          构造一个新的 Rectangle,其左上角是指定的 Point,其宽度和高度均为 0。
Rectangle(Point p, Dimension d)
          构造一个新的 Rectangle,其左上角由 Point 参数指定,其宽度和高度由 Dimension 参数指定。
Rectangle(Rectangle r)
          构造一个新的 Rectangle,并将其初始化,以与指定 Rectangle 的值匹配。
 
方法摘要
 void add(int newx, int newy)
          将一个由整数参数 newx,newy 指定的点添加到此 Rectangle 的边界。
 void add(Point pt)
          将指定的 Point 添加到此 Rectangle 的边界。
 void add(Rectangle r)
          将一个 Rectangle 添加到此 Rectangle 中。
 boolean contains(int x, int y)
          检查此 Rectangle 是否包含位于指定位置 (x,y) 的点。
 boolean contains(int X, int Y, int W, int H)
          检查此 Rectangle 是否完全包含位于指定位置 (X,Y) 且具有指定维数 (W,H)Rectangle
 boolean contains(Point p)
          检查此 Rectangle 是否包含指定的 Point
 boolean contains(Rectangle r)
          检查此 Rectangle 是否完全包含指定的 Rectangle
 Rectangle2D createIntersection(Rectangle2D r)
          返回一个新的 Rectangle2D 对象,它表示此 Rectangle2D 与指定 Rectangle2D 的交集。
 Rectangle2D createUnion(Rectangle2D r)
          返回一个新的 Rectangle2D 对象,它表示此 Rectangle2D 与指定 Rectangle2D 的并集。
 boolean equals(Object obj)
          检查两个矩形是否相等。
 Rectangle getBounds()
          获取此 Rectangle 的边界 Rectangle
 Rectangle2D getBounds2D()
          返回一个高精度的、比 getBounds 方法更准确的 Shape 边界框。
 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()
          确定 RectangularShape 是否为空。
 void move(int x, int y)
          已过时。 从 JDK version 1.1 开始,由 setLocation(int, int) 取代。
 int outcode(double x, double y)
          确定指定坐标相对于此 Rectangle2D 的位置。
 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 dx, int dy)
          将此 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
Rectangle 左上角的 X 坐标。

从以下版本开始:
1.0
另请参见:
setLocation(int, int), getLocation()

y

public int y
Rectangle 左上角的 Y 坐标。

从以下版本开始:
1.0
另请参见:
setLocation(int, int), getLocation()

width

public int width
Rectangle 的宽度。

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

height

public int height
Rectangle 的高度。

从以下版本开始:
1.0
另请参见:
setSize(int, int), getSize()
构造方法详细信息

Rectangle

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


Rectangle

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

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

Rectangle

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

参数:
x - 指定的 X 坐标
y - 指定的 Y 坐标
width - Rectangle 的宽度
height - Rectangle 的高度
从以下版本开始:
1.0

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,其宽度和高度均为 0。

参数:
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
从以下版本开始:
1.1
另请参见:
Component.getBounds(), setBounds(Rectangle), setBounds(int, int, int, int)

getBounds2D

public Rectangle2D getBounds2D()
返回一个高精度的、比 getBounds 方法更准确的 Shape 边界框。注意,不保证返回的 Rectangle2D 是包围 Shape 的最小边界框,只保证 Shape 完全位于指示的 Rectangle2D 中。此方法返回的边界框通常比 getBounds 方法返回的更紧密,而且永远不会因为溢出问题而出错,因为返回值可以是一个使用双精度值存储尺寸的 Rectangle2D 实例。

指定者:
接口 Shape 中的 getBounds2D
覆盖:
Rectangle2D 中的 getBounds2D
返回:
一个 Rectangle2D 实例,它是 Shape 的高精度边界框。
从以下版本开始:
1.2
另请参见:
Shape.getBounds()

setBounds

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

包含此方法是出于完整性考虑,以对应 ComponentsetBounds 方法。

参数:
r - 指定的 Rectangle
从以下版本开始:
1.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 的新高度
从以下版本开始:
1.1
另请参见:
getBounds(), Component.setBounds(int, int, int, int)

setRect

public void setRect(double x,
                    double y,
                    double width,
                    double height)
将此 Rectangle 的边界设置为整数边界,它包含指定的 xywidthheight。如果这些参数指定的 Rectangle 超出整数的最大范围,则结果将为与最大整数边界相交的指定 Rectangle 的最佳表示形式。

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

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 坐标
- Rectangle 左上角的新 Y 坐标
width - 此 Rectangle 的新宽度
height - 此 Rectangle 的新高度

getLocation

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

包含此方法是出于完整性考虑,以对应 ComponentgetLocation 方法。

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

setLocation

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

包含此方法是出于完整性考虑,以对应 ComponentsetLocation 方法。

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

setLocation

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

包含此方法是出于完整性考虑,以对应 ComponentsetLocation 方法。

参数:
x - 新位置的 X 坐标
y - 新位置的 Y 坐标
从以下版本开始:
1.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 坐标

translate

public void translate(int dx,
                      int dy)
将此 Rectangle 沿 X 坐标轴向右,沿 Y 坐标轴向下平移指定距离。

参数:
dx - 沿 X 轴移动此 Rectangle 的距离
dy - 沿 Y 轴移动此 Rectangle 的距离
另请参见:
setLocation(int, int), setLocation(java.awt.Point)

getSize

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

包含此方法是出于完整性考虑,以对应 ComponentgetSize 方法。

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

setSize

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