- 所有已实现的接口:
-
Shape,Serializable,Cloneable
- 直接已知的子类:
-
DefaultCaret
Rectangle指定了一个坐标空间中由Rectangle对象的左上角点(x,y)、宽度和高度围起来的区域。
Rectangle对象的width和height是public字段。创建Rectangle的构造函数和可以修改一个Rectangle的方法不会阻止为宽度或高度设置负值。
一个Rectangle的宽度或高度恰好为零时,沿着这些轴的位置具有零维度,但在其他方面被视为空。对于这样的Rectangle,isEmpty()方法将返回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
- 参见:
-
Nested Class Summary
Nested classes/interfaces declared in class java.awt.geom.Rectangle2D
Rectangle2D.Double, Rectangle2D.Float -
Field Summary
FieldsModifier and TypeFieldDescriptionintRectangle的高度。intRectangle的宽度。intRectangle左上角的X坐标。intRectangle左上角的Y坐标。Fields declared in class java.awt.geom.Rectangle2D
OUT_BOTTOM, OUT_LEFT, OUT_RIGHT, OUT_TOP -
Constructor Summary
ConstructorsConstructorDescription构造一个新的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,其左上角由Point参数指定,宽度和高度由Dimension参数指定。构造一个新的Rectangle,初始化为与指定Rectangle的值相匹配。 -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(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的边界设置为指定的x、y、width和height。void将此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) 沿X坐标轴向右移动指定距离,沿Y坐标轴向下移动,将此Rectangle转换。计算此Rectangle与指定Rectangle的并集。Methods declared in class java.awt.geom.Rectangle2D
add, add, add, contains, contains, getPathIterator, getPathIterator, hashCode, intersect, intersects, intersectsLine, intersectsLine, outcode, setFrame, setRect, unionMethods declared in class java.awt.geom.RectangularShape
clone, contains, contains, getCenterX, getCenterY, getFrame, getMaxX, getMaxY, getMinX, getMinY, intersects, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonalMethods declared in interface java.awt.Shape
contains, contains, contains, contains, getPathIterator, getPathIterator, intersects, intersects
-
Field Details
-
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
- 另请参见:
-
-
Constructor Details
-
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- 是Rectangle的左上角的Point -
d- 一个Dimension,表示Rectangle的宽度和高度
-
Rectangle
构造一个新的Rectangle,其左上角由指定的Point指定,宽度和高度均为零。- 参数:
-
p- 是Rectangle的左上角
-
Rectangle
构造一个新的Rectangle,其左上角为(0,0),宽度和高度由Dimension参数指定。- 参数:
-
d- 一个Dimension,指定宽度和高度
-
-
Method Details
-
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的实例。请注意,内部定义可能导致
shape的定义轮廓上的点可能不被认为包含在返回的bounds对象中,但只有在这些点也不被认为包含在原始shape中的情况下才是如此。如果一个
point根据contains(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
Deprecated.As of JDK version 1.1, replaced bysetBounds(int, int, int, int).将此Rectangle的边界设置为指定的x、y、width和height。- 参数:
-
x- 此Rectangle左上角的新X坐标 -
y- 此Rectangle左上角的新Y坐标 -
width- 此Rectangle的新宽度 -
height- 此Rectangle的新高度
-
getLocation
返回此Rectangle的位置。此方法是为了完整性而包含的,以与
Component的getLocation方法相对应。- 返回:
-
是此
Rectangle左上角的Point。 - 自版本:
- 1.1
- 参见:
-
setLocation
将此Rectangle移动到指定位置。此方法是为了完整性而包含的,以与
Component的setLocation方法相对应。- 参数:
-
p- 指定此Rectangle的新位置的Point - 自版本:
- 1.1
- 参见:
-
setLocation
public void setLocation(int x, int y) 将此Rectangle移动到指定位置。此方法是为了完整性而包含的,以与
Component的setLocation方法相对应。- 参数:
-
x- 新位置的X坐标 -
y- 新位置的Y坐标 - 自版本:
- 1.1
- 参见:
-
move
Deprecated.As of JDK version 1.1, replaced bysetLocation(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
Deprecated.As of JDK version 1.1, replaced bysetSize(int, int).将此Rectangle的大小设置为指定的宽度和高度。- 参数:
-
width- 此Rectangle的新宽度 -
height- 此Rectangle的新高度
-
contains
检查此Rectangle是否包含指定的Point。- 参数:
-
p- 要测试的Point - 返回:
-
如果指定的
Point在此Rectangle内部,则返回true;否则返回false。 - 自版本:
- 1.1
-
contains
public boolean contains(int x, int y) 检查此Rectangle是否包含指定位置(x,y)的点。- 参数:
-
x- 指定的X坐标 -
y- 指定的Y坐标 - 返回:
-
如果点
(x,y)在此Rectangle内部,则返回true;否则返回false。 - 自版本:
- 1.1
-
contains
检查此Rectangle是否完全包含指定的Rectangle。- 参数:
-
r- 指定的Rectangle - 返回:
-
如果
Rectangle完全包含在此Rectangle内部,则返回true;否则返回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的高度 - 返回:
-
如果由
(X, Y, W, H)指定的Rectangle完全包含在此Rectangle内部,则返回true;否则返回false。 - 自版本:
- 1.1
-
inside
Deprecated.As of JDK version 1.1, replaced bycontains(int, int).检查此Rectangle是否包含指定位置(X,Y)的点。- 参数:
-
X- 指定的X坐标 -
Y- 指定的Y坐标 - 返回:
-
如果点
(X,Y)在此Rectangle内部,则返回true;否则返回false。
-
intersects
确定此Rectangle和指定的Rectangle是否相交。如果两个矩形相交,则它们的交集不为空。- 参数:
-
r- 指定的Rectangle - 返回:
-
如果指定的
Rectangle和此Rectangle相交,则返回true;否则返回false。
-
intersection
计算此Rectangle与指定Rectangle的交集。返回表示两个矩形交集的新Rectangle。如果两个矩形不相交,则结果将是一个空矩形。- 参数:
-
r- 指定的Rectangle - 返回:
-
包含在指定
Rectangle和此Rectangle中的最大Rectangle;如果矩形不相交,则为空矩形。
-
union
计算此Rectangle与指定Rectangle的并集。返回一个新的Rectangle,表示两个矩形的并集。如果任一
Rectangle的任何维度小于零,则适用于不存在矩形的规则。如果只有一个维度小于零,则结果将是另一个Rectangle的副本。如果两者的维度都小于零,则结果将至少有一个维度小于零。如果结果的
Rectangle在某个维度上太大而无法表示为int,则该维度上的结果将为Integer.MAX_VALUE。- 参数:
-
r- 指定的Rectangle - 返回:
-
包含指定
Rectangle和此Rectangle的最小Rectangle。
-
add
public void add(int newx, int newy) 将由整数参数newx,newy指定的点添加到此Rectangle的边界。如果此
Rectangle的任何维度小于零,则适用于不存在矩形的规则。在这种情况下,此Rectangle的新边界将具有位置等于指定坐标的位置,宽度和高度等于零。添加点后,使用添加的点作为参数调用
contains方法不一定会返回true。对于位于Rectangle的右侧或底部边缘的点,contains方法不会返回true。因此,如果添加的点落在扩大的Rectangle的右侧或底部边缘上,则contains对该点返回false。如果指定的点必须包含在新的Rectangle中,则应添加一个1x1的矩形代替:r.add(new Rectangle(newx, newy, 1, 1));
- 参数:
-
newx- 新点的X坐标 -
newy- 新点的Y坐标
-
add
将指定的Point添加到此Rectangle的边界。如果此
Rectangle的任何维度小于零,则适用于不存在矩形的规则。在这种情况下,此Rectangle的新边界将具有位置等于指定Point的坐标的位置,宽度和高度等于零。添加
Point后,使用添加的Point作为参数调用contains方法不一定会返回true。对于位于Rectangle的右侧或底部边缘的点,contains方法不会返回true。因此,如果添加的Point落在扩大的Rectangle的右侧或底部边缘上,则contains对该Point返回false。如果指定的点必须包含在新的Rectangle中,则应添加一个1x1的矩形代替:r.add(new Rectangle(pt, new Dimension(1, 1)));
- 参数:
-
pt- 要添加到此Rectangle的新Point
-
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 - 返回:
-
如果
RectangularShape为空,则返回true;否则返回false。 - 自:
- 1.2
-
outcode
public int outcode(double x, double y) 确定指定坐标相对于此Rectangle2D的位置。此方法计算适当的掩码值的二进制OR,指示对于此Rectangle2D的每一边,指定的坐标是否与该Rectangle2D的其余部分在边的同一侧。- 指定者:
-
outcode在类Rectangle2D - 参数:
-
x- 指定的X坐标 -
y- 指定的Y坐标 - 返回:
- 所有适当出码的逻辑OR。
- 自:
- 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)取代。