public class Rectangle extends Rectangle2D implements Shape, Serializable
Rectangle指定坐标空间中由Rectangle对象的左上角(x,y)包围的区域,其坐标空间,宽度及其高度。
A Rectangle对象的width和height是public字段。 创建Rectangle以及可以修改的方法不能阻止为宽度或高度设置负值。
A Rectangle whose width or height is exactly zero has location along those axes with zero dimension, but is otherwise considered empty. The isEmpty()方法将返回true为这样一个Rectangle 。 测试一个空的Rectangle包含或相交点或矩形的方法总是返回false,如果任一维度为零。 将这种Rectangle与点或矩形组合的方法将包括结果中该轴上Rectangle的位置,就像调用add(Point)方法一样。
仅影响Rectangle的位置的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位整数的范围内表示的位置,但沿着一个或两个轴的零维度,那么这些轴中存储的维度将为零。
Rectangle2D.Double, Rectangle2D.Float| Modifier and Type | Field and Description |
|---|---|
int |
height
Rectangle的高度。
|
int |
width
宽度为
Rectangle 。
|
int |
x
Rectangle左上角的X
Rectangle 。
|
int |
y
Rectangle左上角的Y
Rectangle 。
|
OUT_BOTTOM, OUT_LEFT, OUT_RIGHT, OUT_TOP| Constructor and Description |
|---|
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 ,其左上角被指定为
(x,y) ,其宽度和高度由同名参数指定。
|
Rectangle(Point p)
构造一个新的
Rectangle ,其左上角是指定的
Point ,其宽度和高度均为零。
|
Rectangle(Point p, Dimension d)
|
Rectangle(Rectangle r)
构造一个新的
Rectangle ,初始化以匹配指定的值
Rectangle 。
|
| Modifier and Type | Method and Description |
|---|---|
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是否完整包含
Rectangle在指定位置
(X,Y)具有指定的尺寸
(W,H) 。
|
boolean |
contains(Point p)
检查此
Rectangle是否包含指定的
Point 。
|
boolean |
contains(Rectangle r)
检查这
Rectangle是否完全包含指定的
Rectangle 。
|
Rectangle2D |
createIntersection(Rectangle2D r)
返回一个新的
Rectangle2D对象,表示该
Rectangle2D与指定的Rectangle2D的
Rectangle2D 。
|
Rectangle2D |
createUnion(Rectangle2D r)
返回一个新的
Rectangle2D对象,表示此
Rectangle2D与指定的Rectangle2D的并
Rectangle2D 。
|
boolean |
equals(Object obj)
检查两个矩形是否相等。
|
Rectangle |
getBounds()
获取边界
Rectangle这一点
Rectangle 。
|
Rectangle2D |
getBounds2D()
返回一个高精度和更准确的边界框
Shape比
getBounds方法。
|
double |
getHeight()
返回
Rectangle的高度
double精度。
|
Point |
getLocation()
返回此
Rectangle的位置。
|
Dimension |
getSize()
获得这个
Rectangle的大小,由返回的
Dimension 。
|
double |
getWidth()
返回宽度
Rectangle的边界
double精度。
|
double |
getX()
返回double精度的边界
Rectangle的
double坐标。
|
double |
getY()
返回边界的Y坐标
Rectangle在
double精度。
|
void |
grow(int h, int v)
Rectangle水平和垂直调整大小。
|
boolean |
inside(int X, int Y)
已弃用
从JDK 1.1版开始,替换为
contains(int, int) 。
|
Rectangle |
intersection(Rectangle r)
计算
Rectangle与指定的Rectangle的
Rectangle 。
|
boolean |
intersects(Rectangle r)
确定此
Rectangle和指定的Rectangle
Rectangle相交。
|
boolean |
isEmpty()
确定是否
RectangularShape是空的。
|
void |
move(int x, int y)
已弃用
截至JDK 1.1版,由
setLocation(int, int) 。
|
int |
outcode(double x, double y)
确定指定坐标相对于此
Rectangle2D 。
|
void |
reshape(int x, int y, int width, int height)
已弃用
从JDK 1.1版开始,由
setBounds(int, int, int, int) 。
|
void |
resize(int width, int height)
已弃用
从JDK 1.1版开始,由
setSize(int, int)替换。
|
void |
setBounds(int x, int y, int width, int height)
设置边界
Rectangle如此
Rectangle到指定的
x ,
y ,
width和
height 。
|
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为整数范围,其包含指定的
x ,
y ,
width和
height 。
|
void |
setSize(Dimension d)
设置此
Rectangle的大小以匹配指定的
Dimension 。
|
void |
setSize(int width, int height)
将此
Rectangle的大小设置为指定的宽度和高度。
|
String |
toString()
返回一个
String代表这个
Rectangle及其值。
|
void |
translate(int dx, int dy)
将这种
Rectangle所指示的距离,沿X坐标轴的右侧,向下沿Y坐标轴。
|
Rectangle |
union(Rectangle r)
计算
Rectangle与指定的Rectangle的并
Rectangle 。
|
add, add, add, contains, contains, getPathIterator, getPathIterator, hashCode, intersect, intersects, intersectsLine, intersectsLine, outcode, setFrame, setRect, unionclone, contains, contains, getCenterX, getCenterY, getFrame, getMaxX, getMaxY, getMinX, getMinY, intersects, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonalfinalize, getClass, notify, notifyAll, wait, wait, waitcontains, contains, contains, contains, getPathIterator, getPathIterator, intersects, intersectspublic int x
Rectangle 。
setLocation(int, int) ,
getLocation()
public int y
Rectangle 。
setLocation(int, int) ,
getLocation()
public int width
Rectangle 。
setSize(int, int) ,
getSize()
public int height
Rectangle的高度。
setSize(int, int) ,
getSize()
public Rectangle()
Rectangle ,其左上角在坐标空间中为(0,0),宽度和高度都为零。
public Rectangle(Rectangle r)
Rectangle ,初始化以匹配指定的值
Rectangle 。
r -
Rectangle从其中复制初始值到
Rectangle
public Rectangle(int x,
int y,
int width,
int height)
Rectangle ,其左上角被指定为
(x,y) ,其宽度和高度由相同名称的参数指定。
x - 指定的X坐标
y - 指定的Y坐标
width - 宽度
Rectangle
height - 的高度是
Rectangle
public Rectangle(int width,
int height)
Rectangle ,其左上角在坐标空间中为(0,0),其宽度和高度由相同名称的参数指定。
width - 宽度
Rectangle
height -的高度
Rectangle
public Rectangle(Point p, Dimension d)
p - a
Point是
Rectangle
d -一个
Dimension ,代表的宽度和高度
Rectangle
public Rectangle(Point p)
Rectangle ,其左上角是指定的
Point ,其宽度和高度均为零。
p - a
Point是
Rectangle
public Rectangle(Dimension d)
Rectangle ,其左上角为(0,0),宽度和高度由
Dimension参数指定。
d - a
Dimension ,指定宽度和高度
public double getX()
Rectangle的
double坐标。
getX在
RectangularShape
Rectangle 。
public double getY()
Rectangle的
double Rectangle的Y坐标。
getY在
RectangularShape
Rectangle 。
public double getWidth()
double精度的边界
Rectangle的宽度。
getWidth在类别
RectangularShape
Rectangle 。
public double getHeight()
double精度的边界
Rectangle的高度。
getHeight在
RectangularShape
Rectangle 。
public Rectangle getBounds()
Rectangle这一点Rectangle 。
包括此方法的完整性,并行getBounds方法Component 。
getBounds在界面
Shape
getBounds在
RectangularShape
Rectangle ,等于
Rectangle为这
Rectangle 。
Component.getBounds() ,
setBounds(Rectangle) ,
setBounds(int, int, int, int)
public Rectangle2D getBounds2D()
Shape比getBounds方法。
需要注意的是没有保证返回Rectangle2D是最小的边框包围Shape ,只表示Shape完全在指定的范围内Rectangle2D 。
通过此方法返回的边界框通常比通过返回的更紧密getBounds方法,而且永远不会因为溢出问题,因为返回值可以是实例Rectangle2D一个使用双精度值存储尺寸。
需要注意的是definition of insideness可能会导致出现对的定义轮廓点的情况下shape可能不被认为包含在返回bounds对象,但只有在这些点也未审议了原有的情况下shape 。
如果point是内部shape根据contains(point)方法,那么它必须是内部返回Rectangle2D界限根据对象contains(point)所述的方法bounds 。 特别:
shape.contains(p)需要bounds.contains(p)
如果point不在shape ,那么它可能仍然包含在bounds对象中:
bounds.contains(p)并不表示shape.contains(p)
getBounds2D在界面
Shape
getBounds2D在
Rectangle2D
Rectangle2D那是一个高精度边界框
Shape 。
Shape.getBounds()
public void setBounds(Rectangle r)
Rectangle的边界Rectangle以匹配指定的Rectangle 。
包括此方法的完整性,并行setBounds方法Component 。
r - 指定的
Rectangle
getBounds() ,
Component.setBounds(java.awt.Rectangle)
public void setBounds(int x,
int y,
int width,
int height)
Rectangle如此Rectangle到指定的x , y , width和height 。
包括此方法的完整性,并行setBounds方法Component 。
x - 这个
Rectangle左上角的新X
Rectangle
y - 这个
Rectangle左上角的新Y
Rectangle
width - 这个
Rectangle的新宽度
height - 这个
Rectangle的新高度
getBounds() ,
Component.setBounds(int, int, int, int)
public void setRect(double x,
double y,
double width,
double height)
Rectangle为整数范围,其包含指定的x , y , width和height 。
如果参数指定超过最大整数范围的Rectangle ,则结果将是与最大整数边界相交的Rectangle Rectangle的最佳表示。
setRect在
Rectangle2D
x - 指定矩形左上角的X坐标
y - 指定矩形左上角的Y坐标
width - 指定矩形的宽度
height - 指定
height的新高度
@Deprecated public void reshape(int x, int y, int width, int height)
setBounds(int, int, int, int) 。
Rectangle如此
Rectangle到指定的
x ,
y ,
width和
height 。
x - 这个
Rectangle左上角的新X
Rectangle
y - 这个
Rectangle左上角的新Y
Rectangle
width - 这个
Rectangle的新宽度
height - 这个
Rectangle的新高度
public Point getLocation()
Rectangle的位置。
包括此方法的完整性,并行getLocation方法Component 。
Point是这个
Rectangle 。
Component.getLocation() ,
setLocation(Point) ,
setLocation(int, int)
public void setLocation(Point p)
Rectangle移动到指定的位置。
包括这种方法的完整性,并行setLocation方法Component 。
p -
Point指定此
Rectangle的新位置
Component.setLocation(java.awt.Point) ,
getLocation()
public void setLocation(int x,
int y)
Rectangle移动到指定的位置。
包括此方法的完整性,并行setLocation方法Component 。
x - 新位置的X坐标
y - 新位置的Y坐标
getLocation() ,
Component.setLocation(int, int)
@Deprecated public void move(int x, int y)
setLocation(int, int) 。
Rectangle移动到指定的位置。
x - 新位置的X坐标
y - 新位置的Y坐标
public void translate(int dx,
int dy)
Rectangle所指示的距离,沿X坐标轴的右侧,向下沿Y坐标轴。
dx -的距离来移动此
Rectangle沿X轴
dy - 沿着Y轴移动这个
Rectangle的距离
setLocation(int, int) ,
setLocation(java.awt.Point)
public Dimension getSize()
Rectangle的大小,由返回的Dimension 。
包括这种方法的完整性,并行getSize方法的Component 。
Dimension ,代表这个
Rectangle的大小。
Component.getSize() ,
setSize(Dimension) ,
setSize(int, int)
public void setSize(Dimension d)
Rectangle的大小以匹配指定的Dimension 。
包括此方法的完整性,并行setSize方法Component 。
d -
Dimension对象的新大小
Component.setSize(java.awt.Dimension) ,
getSize()
public void setSize(int width,
int height)
Rectangle的大小设置为指定的宽度和高度。
包括此方法的完整性,并行setSize方法Component 。
width - 这个
Rectangle的新宽度
height - 这个
Rectangle的新高度
Component.setSize(int, int) ,
getSize()
@Deprecated public void resize(int width, int height)
setSize(int, int) 。
Rectangle的大小设置为指定的宽度和高度。
width - 这个
Rectangle的新宽度
height - 这个
Rectangle的新高度
public boolean contains(Point p)
Rectangle是否包含指定的
Point 。
p -
Point要测试
true如果指定的Point是在这个Rectangle ;
false否则。
public boolean contains(int x,
int y)
Rectangle是否包含指定位置的点
(x,y) 。
x - 指定的X坐标
y - 指定的Y坐标
true如果点(x,y)是在这个Rectangle ;
false否则。
public boolean contains(Rectangle r)
Rectangle是否完全包含指定的
Rectangle 。
r - 指定的
Rectangle
true如果Rectangle被此内完全包含Rectangle ;
false否则
public boolean contains(int X,
int Y,
int W,
int H)
Rectangle完全包含
Rectangle在指定位置
(X,Y)具有指定尺寸
(W,H) 。
X - 指定的X坐标
Y - 指定的Y坐标
W - 宽度
Rectangle
H -的高度
Rectangle
true如果由Rectangle指定的(X, Y, W, H)完全封闭在此Rectangle ;
false否则。
@Deprecated public boolean inside(int X, int Y)
contains(int, int) 。
Rectangle是否包含指定位置的点
(X,Y) 。
X - 指定的X坐标
Y - 指定的Y坐标
true如果点(X,Y)是在这个Rectangle ;
false否则。
public boolean intersects(Rectangle r)
Rectangle和指定的Rectangle Rectangle相交。
两个矩形相交,如果它们的交集非空。
r - 指定的
Rectangle
true如果指定的Rectangle和这个Rectangle相交;
false否则。
public Rectangle intersection(Rectangle r)
Rectangle与指定的Rectangle的Rectangle 。
返回一个新Rectangle表示两个矩形的交集。
如果两个矩形不相交,结果将是一个空的矩形。
r - 指定的
Rectangle
Rectangle包含在指定的Rectangle和在这Rectangle ;
或者如果矩形不相交,则为空矩形。
public Rectangle union(Rectangle r)
Rectangle与指定的Rectangle的并Rectangle 。
返回一个新的Rectangle ,表示两个矩形的并集。
如果Rectangle的任何尺寸小于零,则适用non-existant矩形的规则。 如果只有一个维数小于零,则结果将是另一个的副本Rectangle 。 如果两者都具有小于零的维度,则结果将至少有一个维度小于零。
如果得到Rectangle会有太大而不能表示为一个维度int ,其结果将有一个尺寸Integer.MAX_VALUE该维。
r - 指定的
Rectangle
Rectangle包含指定的
Rectangle和这个
Rectangle 。
public void add(int newx,
int newy)
newx,newy到此的边界Rectangle 。
如果这个Rectangle尺寸小于零,则适用non-existant矩形的规则。 在这种情况下,这个Rectangle的新界限将具有等于指定坐标的位置,宽度和高度等于零。
添加点后,调用contains添加点作为参数不一定返回true 。 该contains方法不返回true用于在右侧或底部边缘点Rectangle 。 因此,如果添加点落在放大的Rectangle的右边缘或下边缘,则contains返回false 。 如果指定的点必须包含在新的Rectangle ,则应添加1x1矩形:
r.add(newx, newy, 1, 1);
newx - 新点的X坐标
newy - 新点的Y坐标
public void add(Point pt)
Point本的界限Rectangle 。
如果这个Rectangle尺寸小于零,则适用non-existant矩形的规则。 在这种情况下,此Rectangle的新界限将具有等于指定的Point的Point ,宽度和高度等于零的位置。
在添加Point ,拨打contains并附加了Point作为参数,并不一定会返回true 。 该contains方法不返回true用于在右侧或底部边缘点Rectangle 。 所以,如果添加Point落在放大的右侧或底部边缘Rectangle , contains返回false为Point 。 如果指定点必须包含在新的Rectangle ,则应添加1x1矩形:
r.add(pt.x, pt.y, 1, 1);
pt - 新增的
Point加入此
Rectangle
public void add(Rectangle r)
Rectangle这个Rectangle 。
所得到的Rectangle是两个矩形的并集。
如果Rectangle的任何尺寸小于0,结果将具有另一个Rectangle 。 如果Rectangle s至少有一个维度小于0,结果将至少有一个维度小于0。
如果Rectangle具有一个或两个尺寸等于0,则沿着这些轴的0维的结果将等同于通过将相应的原点坐标添加到沿该轴的结果矩形而获得的结果,类似于add(Point)方法的操作,但没有进一步的贡献。
如果得到Rectangle会有太大而不能表示为一个维度int ,其结果将有一个尺寸Integer.MAX_VALUE该维。
r - 指定的
Rectangle
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 - 垂直展开
public boolean isEmpty()
RectangularShape是空的。
RectangularShape为空时,不包含区域。
isEmpty在
RectangularShape
true如果RectangularShape是空的;
false否则。
public int outcode(double x,
double y)
Rectangle2D 。
该方法计算适当的掩码值的二进制OR,该值适用于该Rectangle2D的每一侧, Rectangle2D是否与该Rectangle2D的其余部分位于同一边。
outcode在
Rectangle2D
x - 指定的X坐标
y - 指定的Y坐标
Rectangle2D.OUT_LEFT ,
Rectangle2D.OUT_TOP ,
Rectangle2D.OUT_RIGHT ,
Rectangle2D.OUT_BOTTOM
public Rectangle2D createIntersection(Rectangle2D r)
Rectangle2D对象,表示该
Rectangle2D与指定的Rectangle2D的
Rectangle2D 。
createIntersection在
Rectangle2D
r -在
Rectangle2D与此相交
Rectangle2D
Rectangle2D包含在指定的
Rectangle2D和在这
Rectangle2D 。
public Rectangle2D createUnion(Rectangle2D r)
Rectangle2D对象,表示该
Rectangle2D与指定的Rectangle2D的并
Rectangle2D 。
createUnion在
Rectangle2D
r -在
Rectangle2D与此相结合
Rectangle2D
Rectangle2D包含指定的
Rectangle2D和该
Rectangle2D 。
public boolean equals(Object obj)
结果是true当且仅当参数不是null并且是一个Rectangle对象,具有与此Rectangle相同的左上角,宽度和高度。
equals在
Rectangle2D
obj -
Object与此
Rectangle
true如果对象相等;
false否则。
Object.hashCode() , HashMap
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.