- 所有已实现的接口:
Shape,Serializable,Cloneable
- 已知子类:
DefaultCaret
Rectangle 指定坐标空间中的区域,该区域由Rectangle 对象的左上角点(x,y) 在坐标空间中、其宽度和高度围成。
Rectangle 对象的 width 和 height 是 public 字段。创建 Rectangle 的构造函数以及可以修改它的方法不会阻止为宽度或高度设置负值。
宽度或高度正好为零的 Rectangle 沿这些轴的位置具有零维,但在其他方面被认为是空的。 isEmpty() 方法将为此类 Rectangle 返回 true。如果任一维度为零,则测试空 Rectangle 是否包含或与点或矩形相交的方法将始终返回 false。将这样的 Rectangle 与点或矩形组合的方法将在结果中包括 Rectangle 在该轴上的位置,就好像正在调用 add(Point) 方法一样。
仅影响 Rectangle 位置的方法将对其位置进行操作,而不管它沿任一轴是否具有负维度或零维度。
请注意,使用默认无参数构造函数构造的 Rectangle 的维度为 0x0,因此为空。 Rectangle 的位置仍为 (0,0) 并将该位置贡献给联合和添加操作。因此,尝试累积一组点的边界的代码应该首先构造具有特定负宽度和高度的 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 位值,结果的位置将存储到 x 和 y 字段中。存储在 width 和 height 维度字段中的值将被选为尽可能包含真实结果的最大部分的 32 位值。通常,这意味着维度将被独立地裁剪到 32 位整数的范围内,除非必须移动位置以将其存储到它的一对 32 位字段中,然后维度将相对于“最佳表示”进行调整“的位置。如果真实结果具有负维度,因此在一个或两个轴上不存在,则存储的维度在这些轴上将为负数。如果真实结果的位置可以在 32 位整数范围内表示,但沿一个或两个轴的维度为零,则存储的维度在这些轴中将为零。
- 自从:
- 1.0
- 参见:
-
内部类总结
在类 java.awt.geom.Rectangle2D 中声明的嵌套类/接口
Rectangle2D.Double, Rectangle2D.Float -
字段摘要
字段修饰符和类型Field描述intRectangle的高度。intRectangle的宽度。intRectangle左上角的 X 坐标。intRectangle左上角的 Y 坐标。在类 java.awt.geom.Rectangle2D 中声明的字段
OUT_BOTTOM, OUT_LEFT, OUT_RIGHT, OUT_TOP -
构造方法总结
构造方法构造方法描述构造一个新的Rectangle,其左上角在坐标空间中的 (0, 0) 处,并且其宽度和高度均为零。Rectangle(int width, int height) 构造一个新的Rectangle,其左上角位于坐标空间中的 (0, 0) 处,其宽度和高度由同名参数指定。Rectangle(int x, int y, int width, int height) 构造一个新的Rectangle,其左上角指定为(x,y),其宽度和高度由同名参数指定。构造一个新的Rectangle,其左上角为 (0, 0),其宽度和高度由Dimension参数指定。构造一个新的Rectangle,其左上角是指定的Point,并且其宽度和高度均为零。构造一个新的Rectangle,初始化以匹配指定的Rectangle的值。 -
方法总结
修饰符和类型方法描述voidadd(int newx, int newy) 将整数参数newx,newy指定的点添加到此Rectangle的边界。void将指定的Point添加到此Rectangle的边界。void添加一个Rectangle到这个Rectangle。booleancontains(int x, int y) 检查此Rectangle是否包含指定位置(x,y)的点。booleancontains(int X, int Y, int W, int H) 检查此Rectangle是否在指定位置(X,Y)完全包含具有指定尺寸(W,H)的Rectangle。boolean检查此Rectangle是否包含指定的Point。boolean检查此Rectangle是否完全包含指定的Rectangle。返回一个新的Rectangle2D对象,表示此Rectangle2D与指定的Rectangle2D的交集。返回一个新的Rectangle2D对象,表示此Rectangle2D与指定的Rectangle2D的并集。boolean检查两个矩形是否相等。获取此Rectangle的边界Rectangle。返回Shape比getBounds方法更高精度和更准确的边界框。double以double精度返回边界Rectangle的高度。返回此Rectangle的位置。getSize()获取此Rectangle的大小,由返回的Dimension表示。doublegetWidth()以double精度返回边界Rectangle的宽度。doublegetX()以double精度返回边界Rectangle的 X 坐标。doublegetY()以double精度返回边界Rectangle的 Y 坐标。voidgrow(int h, int v) 水平和垂直调整Rectangle的大小。booleaninside(int X, int Y) 已弃用。计算此Rectangle与指定的Rectangle的交集。boolean确定此Rectangle和指定的Rectangle是否相交。booleanisEmpty()确定RectangularShape是否为空。voidmove(int x, int y) 已弃用。从 JDK 1.1 版开始,由setLocation(int, int)取代。intoutcode(double x, double y) 确定指定坐标相对于此Rectangle2D的位置。voidreshape(int x, int y, int width, int height) 已弃用。从 JDK 1.1 版开始,由setBounds(int, int, int, int)取代。voidresize(int width, int height) 已弃用。从 JDK 1.1 版开始,由setSize(int, int)取代。voidsetBounds(int x, int y, int width, int height) 将此Rectangle的边界Rectangle设置为指定的x、y、width和height。void设置此Rectangle的边界Rectangle以匹配指定的Rectangle。voidsetLocation(int x, int y) 将此Rectangle移动到指定位置。voidsetLocation(Point p) 将此Rectangle移动到指定位置。voidsetRect(double x, double y, double width, double height) 将此Rectangle的边界设置为包含指定x、y、width和height的整数边界。voidsetSize(int width, int height) 将此Rectangle的大小设置为指定的宽度和高度。void设置此Rectangle的大小以匹配指定的Dimension。toString()返回表示此Rectangle及其值的String。voidtranslate(int dx, int dy) 将此Rectangle沿 X 坐标轴向右移动,并沿 Y 坐标轴向下移动指示的距离。计算此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.awt.Shape 中声明的方法
contains, contains, contains, contains, getPathIterator, getPathIterator, intersects, intersects
-
字段详细信息
-
x
public int xRectangle左上角的 X 坐标。- 自从:
- 1.0
- 参见:
-
y
public int yRectangle左上角的 Y 坐标。- 自从:
- 1.0
- 参见:
-
width
public int widthRectangle的宽度。- 自从:
- 1.0
- 参见:
-
height
public int heightRectangle的高度。- 自从:
- 1.0
- 参见:
-
-
构造方法详细信息
-
Rectangle
public Rectangle()构造一个新的Rectangle,其左上角在坐标空间中的 (0, 0) 处,并且其宽度和高度均为零。 -
Rectangle
构造一个新的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
- 参数:
p-Point即Rectangle的左上角d- 一个Dimension,代表Rectangle的宽度和高度
-
Rectangle
构造一个新的Rectangle,其左上角是指定的Point,并且其宽度和高度均为零。- 参数:
p-Point是Rectangle的左上角
-
Rectangle
构造一个新的Rectangle,其左上角为 (0, 0),其宽度和高度由Dimension参数指定。- 参数:
d- aDimension,指定宽度和高度
-
-
方法详情
-
getX
public double getX()以double精度返回边界Rectangle的 X 坐标。- 指定者:
getX在类RectangularShape中- 返回:
-
边界
Rectangle的 X 坐标。
-
getY
public double getY()以double精度返回边界Rectangle的 Y 坐标。- 指定者:
getY在类RectangularShape中- 返回:
-
边界
Rectangle的 Y 坐标。
-
getWidth
public double getWidth()以double精度返回边界Rectangle的宽度。- 指定者:
getWidth在类RectangularShape中- 返回:
-
边界的宽度
Rectangle。
-
getHeight
public double getHeight()以double精度返回边界Rectangle的高度。- 指定者:
getHeight在类RectangularShape中- 返回:
-
边界
Rectangle的高度。
-
getBounds
- 指定者:
getBounds在接口Shape中- 重写:
getBounds在类RectangularShape中- 返回:
-
一个新的
Rectangle,等于这个Rectangle的边界Rectangle。 - 自从:
- 1.1
- 参见:
-
getBounds2D
返回Shape比getBounds方法更高精度和更准确的边界框。请注意,不能保证返回的Rectangle2D是包围Shape的最小边界框,只能保证Shape完全位于指示的Rectangle2D内。此方法返回的边界框通常比getBounds方法返回的边界框更紧密,并且不会因溢出问题而失败,因为返回值可以是使用双精度值存储尺寸的Rectangle2D的实例。请注意,definition of insideness 可能导致
shape定义轮廓上的点可能不被视为包含在返回的bounds对象中,但仅在这些点也不被视为包含在原始shape中的情况下。如果根据
contains(point)方法point在shape内部,那么根据bounds的contains(point)方法,它必须在返回的Rectangle2D边界对象内部。具体来说:shape.contains(p)需要bounds.contains(p)如果
point不在shape内,那么它可能仍包含在bounds对象中:bounds.contains(p)并不意味着shape.contains(p)- 指定者:
getBounds2D在接口Shape中- 重写:
getBounds2D在类Rectangle2D中- 返回:
Rectangle2D的一个实例,它是Shape的高精度边界框。- 自从:
- 1.2
- 参见:
-
setBounds
设置此Rectangle的边界Rectangle以匹配指定的Rectangle。包含此方法是为了完整性,以与
Component的setBounds方法并行。- 参数:
r- 指定的Rectangle- 自从:
- 1.1
- 参见:
-
setBounds
public void setBounds(int x, int y, int width, int height) 将此Rectangle的边界Rectangle设置为指定的x、y、width和height。包含此方法是为了完整性,以与
Component的setBounds方法并行。- 参数:
x- 这个Rectangle左上角的新 X 坐标y- 这个Rectangle左上角的新 Y 坐标width- 这个Rectangle的新宽度height- 这个Rectangle的新高度- 自从:
- 1.1
- 参见:
-
setRect
public void setRect(double x, double y, double width, double height) 将此Rectangle的边界设置为包含指定x、y、width和height的整数边界。如果参数指定的Rectangle超出了最大整数范围,则结果将是指定Rectangle与最大整数范围相交的最佳表示。- 指定者:
setRect在类Rectangle2D中- 参数:
x- 指定矩形左上角的X坐标y- 指定矩形左上角的Y坐标width- 指定矩形的宽度height- 指定矩形的新高度
-
reshape
已弃用。从 JDK 1.1 版开始,由setBounds(int, int, int, int)取代。将此Rectangle的边界Rectangle设置为指定的x、y、width和height。- 参数:
x- 这个Rectangle左上角的新 X 坐标y- 这个Rectangle左上角的新 Y 坐标width- 这个Rectangle的新宽度height- 这个Rectangle的新高度
-
getLocation
返回此Rectangle的位置。包含此方法是为了完整性,以与
Component的getLocation方法并行。- 返回:
Point是这个Rectangle的左上角。- 自从:
- 1.1
- 参见:
-
setLocation
将此Rectangle移动到指定位置。包含此方法是为了完整性,以与
Component的setLocation方法并行。- 参数:
p-Point指定此Rectangle的新位置- 自从:
- 1.1
- 参见:
-
setLocation
public void setLocation(int x, int y) 将此Rectangle移动到指定位置。包含此方法是为了完整性,以与
Component的setLocation方法并行。- 参数:
x- 新位置的 X 坐标y- 新位置的 Y 坐标- 自从:
- 1.1
- 参见:
-
move
已弃用。从 JDK 1.1 版开始,由setLocation(int, int)取代。将此Rectangle移动到指定位置。- 参数:
x- 新位置的 X 坐标y- 新位置的 Y 坐标
-
translate
public void translate(int dx, int dy) 将此Rectangle沿 X 坐标轴向右移动,并沿 Y 坐标轴向下移动指示的距离。- 参数:
dx- 沿 X 轴移动此Rectangle的距离dy- 沿 Y 轴移动此Rectangle的距离- 参见:
-
getSize
获取此Rectangle的大小,由返回的Dimension表示。包含此方法是为了完整性,以与
Component的getSize方法并行。- 返回:
-
一个
Dimension,代表这个Rectangle的大小。 - 自从:
- 1.1
- 参见:
-
setSize
设置此Rectangle的大小以匹配指定的Dimension。包含此方法是为了完整性,以与
Component的setSize方法并行。- 参数:
d-Dimension对象的新大小- 自从:
- 1.1
- 参见:
-
setSize
public void setSize(int width, int height) 将此Rectangle的大小设置为指定的宽度和高度。包含此方法是为了完整性,以与
Component的setSize方法并行。- 参数:
width- 这个Rectangle的新宽度height- 这个Rectangle的新高度- 自从:
- 1.1
- 参见:
-
resize
已弃用。从 JDK 1.1 版开始,由setSize(int, int)取代。将此Rectangle的大小设置为指定的宽度和高度。- 参数:
width- 这个Rectangle的新宽度height- 这个Rectangle的新高度
-
contains
检查此Rectangle是否包含指定的Point。- 参数:
p- 要测试的Point- 返回:
true如果指定的Point在此Rectangle内;false否则。- 自从:
- 1.1
-
contains
public boolean contains(int x, int y) 检查此Rectangle是否包含指定位置(x,y)的点。- 参数:
x- 指定的X坐标y- 指定的Y坐标- 返回:
true如果点(x,y)在这个Rectangle内;false否则。- 自从:
- 1.1
-
contains
检查此Rectangle是否完全包含指定的Rectangle。- 参数:
r- 指定的Rectangle- 返回:
true如果Rectangle完全包含在这个Rectangle内;false否则- 自从:
- 1.2
-
contains
public boolean contains(int X, int Y, int W, int H) 检查此Rectangle是否在指定位置(X,Y)完全包含具有指定尺寸(W,H)的Rectangle。- 参数:
X- 指定的 X 坐标Y- 指定的Y坐标W-Rectangle的宽度H-Rectangle的高度- 返回:
true如果(X, Y, W, H)指定的Rectangle完全包含在这个Rectangle内;false否则。- 自从:
- 1.1
-
inside
已弃用。从 JDK 1.1 版开始,由contains(int, int)取代。检查此Rectangle是否包含指定位置(X,Y)的点。- 参数:
X- 指定的 X 坐标Y- 指定的Y坐标- 返回:
true如果点(X,Y)在这个Rectangle内;false否则。
-
intersects
确定此Rectangle和指定的Rectangle是否相交。如果两个矩形的交点不为空,则它们相交。- 参数:
r- 指定的Rectangle- 返回:
true如果指定的Rectangle和这个Rectangle相交;false否则。
-
intersection
计算此Rectangle与指定的Rectangle的交集。返回一个新的Rectangle表示两个矩形的交集。如果两个矩形不相交,结果将是一个空矩形。- 参数:
r- 指定的Rectangle- 返回:
-
最大的
Rectangle包含在指定的Rectangle和这个Rectangle中;或者如果矩形不相交,则为空矩形。
-
union
计算此Rectangle与指定Rectangle的并集。返回一个新的Rectangle表示两个矩形的并集。如果
Rectangle的任何维度小于零,则适用 non-existent 矩形的规则。如果只有一个维度小于零,则结果将是另一个Rectangle的副本。如果两者的维度都小于零,则结果将至少有一个维度小于零。如果生成的
Rectangle的维度太大而无法表示为int,则结果沿该维度的维度为Integer.MAX_VALUE。- 参数:
r- 指定的Rectangle- 返回:
-
最小的
Rectangle包含指定的Rectangle和这个Rectangle。
-
add
public void add(int newx, int newy) 将整数参数newx,newy指定的点添加到此Rectangle的边界。如果此
Rectangle的任何维度小于零,则适用 non-existent 矩形的规则。在这种情况下,此Rectangle的新边界的位置将等于指定坐标且宽度和高度等于零。添加一个点后,以添加的点作为参数调用
contains不一定返回true。contains方法不会为Rectangle的右侧或底部边缘的点返回true。因此,如果添加的点落在放大的Rectangle的右侧或底部边缘,则contains返回该点的false。如果指定点必须包含在新的Rectangle中,则应添加一个 1x1 矩形:r.add(new Rectangle(newx, newy, 1, 1));
- 参数:
newx- 新点的 X 坐标newy- 新点的 Y 坐标
-
add
将指定的Point添加到此Rectangle的边界。如果此
Rectangle的任何维度小于零,则适用 non-existent 矩形的规则。在这种情况下,此Rectangle的新边界的位置将等于指定的Point的坐标,并且宽度和高度等于零。添加
Point后,以添加的Point作为参数调用contains不一定返回true。contains方法不会为Rectangle的右侧或底部边缘的点返回true。因此,如果添加的Point落在放大的Rectangle的右侧或底部边缘,则contains会为该Point返回false。如果指定点必须包含在新的Rectangle中,则应添加一个 1x1 矩形:r.add(new Rectangle(pt, new Dimension(1, 1)));
- 参数:
pt- 新的Point添加到这个Rectangle
-
add
添加一个Rectangle到这个Rectangle。生成的Rectangle是两个矩形的并集。如果任一
Rectangle的维度小于 0,则结果将具有另一个Rectangle的维度。如果两个Rectangle都有至少一维小于 0,则结果将至少有一维小于 0。如果
Rectangle的一个或两个维度都等于 0,则沿那些维度为 0 的轴的结果将等效于将相应的原点坐标添加到沿该轴的结果矩形所获得的结果,类似于add(Point)方法的操作,但除此之外没有进一步的贡献。如果生成的
Rectangle的维度太大而无法表示为int,则结果沿该维度的维度为Integer.MAX_VALUE。- 参数:
r- 指定的Rectangle
-
grow
public void grow(int h, int v) 水平和垂直调整Rectangle的大小。此方法修改
Rectangle,使其在左侧和右侧都大h个单位,在顶部和底部都大v个单位。新的
Rectangle的左上角为(x - h, y - v),宽度为(width + 2h),高度为(height + 2v)。如果为
h和v提供负值,则Rectangle的大小会相应减小。grow方法将检查整数溢出和下溢,但不检查width和height的结果值是否从负值增长到非负值或从非负值收缩到负值。- 参数:
h- 水平扩展v- 垂直扩展
-
isEmpty
public boolean isEmpty()确定RectangularShape是否为空。当RectangularShape为空时,它不包含任何区域。- 指定者:
isEmpty在类RectangularShape中- 返回:
true如果RectangularShape为空;false否则。- 自从:
- 1.2
-
outcode
public int outcode(double x, double y) 确定指定坐标相对于此Rectangle2D的位置。此方法计算适当掩码值的二进制或,指示对于此Rectangle2D的每一侧,指定坐标是否与此Rectangle2D的其余部分位于边缘的同一侧。- 指定者:
outcode在类Rectangle2D中- 参数:
x- 指定的X坐标y- 指定的Y坐标- 返回:
- 所有适当的输出代码的逻辑或。
- 自从:
- 1.2
- 参见:
-
createIntersection
返回一个新的Rectangle2D对象,表示此Rectangle2D与指定的Rectangle2D的交集。- 指定者:
createIntersection在类Rectangle2D中- 参数:
r- 与此Rectangle2D相交的Rectangle2D- 返回:
-
最大的
Rectangle2D包含在指定的Rectangle2D和这个Rectangle2D中。 - 自从:
- 1.2
-
createUnion
返回一个新的Rectangle2D对象,表示此Rectangle2D与指定的Rectangle2D的并集。- 指定者:
createUnion在类Rectangle2D中- 参数:
r- 要与此Rectangle2D组合的Rectangle2D- 返回:
-
最小的
Rectangle2D包含指定的Rectangle2D和这个Rectangle2D。 - 自从:
- 1.2
-
equals
检查两个矩形是否相等。结果为
true当且仅当参数不是null并且是一个Rectangle对象,其左上角、宽度和高度与此Rectangle相同。- 重写:
equals在类Rectangle2D中- 参数:
obj- 与这个Rectangle比较的Object- 返回:
true如果对象相等;false否则。- 参见:
-
toString
返回表示此Rectangle及其值的String。
-
contains(int, int)取代。