- java.lang.Object
-
- java.awt.geom.RectangularShape
-
- 已知直接子类:
-
Arc2D,Ellipse2D,Rectangle2D,RoundRectangle2D
public abstract class RectangularShape extends Object implements Shape, Cloneable
RectangularShape是几何由矩形框架定义的Shape对象的基类。 这个类本身并不直接指定任何特定的几何体,而只是提供由Shape对象的整个类别继承的操作方法。 该类提供的操作方法可用于查询和修改矩形框架,为框架子集定义几何图形提供了参考。- 从以下版本开始:
- 1.2
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protectedRectangularShape()这是一个无法直接实例化的抽象类。
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 Objectclone()创建与该对象相同的类和新内容相同的新对象。booleancontains(Point2D p)测试指定Point2D是的边界内Shape,如所描述的definition of insideness 。booleancontains(Rectangle2D r)测试Shape的内部Shape全部包含指定的Rectangle2D。RectanglegetBounds()返回一个整数Rectangle完全包围Shape。doublegetCenterX()以double精度Shapedouble框架矩形中心的X坐标。doublegetCenterY()以double精度Shapedouble框架矩形中心的Y坐标。Rectangle2DgetFrame()返回定义此对象的整体形状的框架Rectangle2D。abstract doublegetHeight()以double精度返回框架矩形的高度。doublegetMaxX()以double精度返回Shape的成帧矩形的最大X坐标。doublegetMaxY()以double精度返回Shape的成帧矩形的最大Y坐标。doublegetMinX()以double精度返回Shape的框架矩形的最小X坐标。doublegetMinY()以double精度返回Shape的成帧矩形的最小Y坐标。PathIteratorgetPathIterator(AffineTransform at, double flatness)返回一个迭代器对象,它沿Shape对象的边界进行迭代,并提供对Shape对象的几何体轮廓的平坦化视图的访问。abstract doublegetWidth()以double精度返回成帧矩形的宽度。abstract doublegetX()以double精度返回成帧矩形左上角的X坐标。abstract doublegetY()返回double精度的框架矩形左上角的Y坐标。booleanintersects(Rectangle2D r)测试Shape的内部是否与指定的内部相交Rectangle2D。abstract booleanisEmpty()确定RectangularShape是否为空。abstract voidsetFrame(double x, double y, double w, double h)将此Shape的成帧矩形的位置和大小设置为指定的矩形值。voidsetFrame(Point2D loc, Dimension2D size)将此Shape的成帧矩形的位置和大小分别设置为Point2D和Dimension2D。voidsetFrame(Rectangle2D r)将此Shape的成帧矩形设置为指定的Rectangle2D。voidsetFrameFromCenter(double centerX, double centerY, double cornerX, double cornerY)根据指定的中心点坐标和角点坐标设置此Shape的框架矩形。voidsetFrameFromCenter(Point2D center, Point2D corner)根据指定的中心Point2D和角Point2D设置此Shape的框架矩形。voidsetFrameFromDiagonal(double x1, double y1, double x2, double y2)基于两个指定的坐标,设置此Shape框架矩形的对角线。voidsetFrameFromDiagonal(Point2D p1, Point2D p2)基于两个指定的Point2D对象设置Shape的框架矩形的对角线。-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.awt.Shape
contains, contains, getBounds2D, getPathIterator, intersects
-
-
-
-
构造方法详细信息
-
RectangularShape
protected RectangularShape()
这是一个无法直接实例化的抽象类。- 从以下版本开始:
- 1.2
- 另请参见:
-
Arc2D,Ellipse2D,Rectangle2D,RoundRectangle2D
-
-
方法详细信息
-
getX
public abstract double getX()
以double精度返回成帧矩形左上角的X坐标。- 结果
- 框架矩形左上角的X坐标。
- 从以下版本开始:
- 1.2
-
getY
public abstract double getY()
以double精度返回成帧矩形左上角的Y坐标。- 结果
- 框架矩形左上角的Y坐标。
- 从以下版本开始:
- 1.2
-
getWidth
public abstract double getWidth()
以double精度返回成帧矩形的宽度。- 结果
- 框架矩形的宽度。
- 从以下版本开始:
- 1.2
-
getHeight
public abstract double getHeight()
以double精度返回框架矩形的高度。- 结果
- 框架矩形的高度。
- 从以下版本开始:
- 1.2
-
getMinX
public double getMinX()
以double精度返回Shape的成帧矩形的最小X坐标。- 结果
-
Shape的框架矩形的最小X坐标。 - 从以下版本开始:
- 1.2
-
getMinY
public double getMinY()
以double精度返回Shape的成帧矩形的最小Y坐标。- 结果
-
Shape的框架矩形的最小Y坐标。 - 从以下版本开始:
- 1.2
-
getMaxX
public double getMaxX()
以double精度返回Shape的成帧矩形的最大X坐标。- 结果
-
Shape的框架矩形的最大X坐标。 - 从以下版本开始:
- 1.2
-
getMaxY
public double getMaxY()
以double精度返回Shape的成帧矩形的最大Y坐标。- 结果
-
Shape框架矩形的最大Y坐标。 - 从以下版本开始:
- 1.2
-
getCenterX
public double getCenterX()
以double精度返回Shape的框架矩形中心的X坐标。- 结果
-
Shape框架矩形中心的X坐标。 - 从以下版本开始:
- 1.2
-
getCenterY
public double getCenterY()
以double精度Shapedouble框架矩形中心的Y坐标。- 结果
-
Shape框架矩形中心的Y坐标。 - 从以下版本开始:
- 1.2
-
getFrame
public Rectangle2D getFrame()
返回定义此对象的整体形状的框架Rectangle2D。- 结果
-
一个
Rectangle2D,在double指定坐标。 - 从以下版本开始:
- 1.2
- 另请参见:
-
setFrame(double, double, double, double),setFrame(Point2D, Dimension2D),setFrame(Rectangle2D)
-
isEmpty
public abstract boolean isEmpty()
确定RectangularShape是否为空。 当RectangularShape为空时,它不会包围任何区域。- 结果
-
true如果RectangularShape是空的; 否则为false。 - 从以下版本开始:
- 1.2
-
setFrame
public abstract void setFrame(double x, double y, double w, double h)将此Shape的成帧矩形的位置和大小设置为指定的矩形值。- 参数
-
x- 指定矩形左上角的X坐标 -
y- 指定矩形左上角的Y坐标 -
w- 指定长方形的宽度 -
h- 指定长方形的高度 - 从以下版本开始:
- 1.2
- 另请参见:
-
getFrame()
-
setFrame
public void setFrame(Point2D loc, Dimension2D size)
将此Shape的成帧矩形的位置和大小分别设置为Point2D和Dimension2D。 框架矩形由RectangularShape的子类用于定义其几何。- 参数
-
loc- 指定的Point2D -
size- 指定的Dimension2D - 从以下版本开始:
- 1.2
- 另请参见:
-
getFrame()
-
setFrame
public void setFrame(Rectangle2D r)
将此Shape的成帧矩形设置为指定的Rectangle2D。 框架矩形由RectangularShape的子类用于定义其几何。- 参数
-
r- 指定的Rectangle2D - 从以下版本开始:
- 1.2
- 另请参见:
-
getFrame()
-
setFrameFromDiagonal
public void setFrameFromDiagonal(double x1, double y1, double x2, double y2)基于两个指定的坐标,设置该Shape的框架矩形的对角线。 框架矩形由RectangularShape的子类用于定义其几何。- 参数
-
x1- 指定对角线起始点的X坐标 -
y1- 指定对角线起始点的Y坐标 -
x2- 指定对角线的终点的X坐标 -
y2- 指定对角线终点的Y坐标 - 从以下版本开始:
- 1.2
-
setFrameFromDiagonal
public void setFrameFromDiagonal(Point2D p1, Point2D p2)
基于两个指定的Point2D对象设置Shape的框架矩形的对角线。 框架矩形由RectangularShape的子类用于定义其几何。- 参数
-
p1- 指定对角线的起始Point2D -
p2- 指定对角线的末端Point2D - 从以下版本开始:
- 1.2
-
setFrameFromCenter
public void setFrameFromCenter(double centerX, double centerY, double cornerX, double cornerY)根据指定的中心点坐标和角点坐标设置此Shape的框架矩形。 框架矩形由RectangularShape的子类用于定义其几何。- 参数
-
centerX- 指定中心点的X坐标 -
centerY- 指定中心点的Y坐标 -
cornerX- 指定角点的X坐标 -
cornerY- 指定角点的Y坐标 - 从以下版本开始:
- 1.2
-
setFrameFromCenter
public void setFrameFromCenter(Point2D center, Point2D corner)
根据指定的中心Point2D和角Point2D设置此Shape的框架矩形。 框架矩形由RectangularShape的子类用于定义其几何。- 参数
-
center- 指定中心Point2D -
corner- 指定的角Point2D - 从以下版本开始:
- 1.2
-
contains
public boolean contains(Point2D p)
测试指定Point2D是的边界内Shape,如所描述的definition of insideness 。
-
intersects
public boolean intersects(Rectangle2D r)
测试Shape的内部是否与指定的内部相交Rectangle2D。Shape.intersects()方法允许一个Shape实现保守返回true当:-
Rectangle2D和Shape相交的概率很高,但是 - 准确地确定这个交叉点的计算是非常昂贵的。
Shapes这个方法可能会返回true即使Rectangle2D不与Shape相交。Area类对大多数Shape对象执行几何交集的更准确的计算,因此如果需要更准确的答案,则可以使用它。- Specified by:
-
intersects在接口Shape - 参数
-
r- 指定的Rectangle2D - 结果
-
true如果Shape的内部和指定的Rectangle2D的内部相交,或者两者都很可能相交,并且交叉点计算将太昂贵执行; 否则为false。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Shape.intersects(double, double, double, double)
-
-
contains
public boolean contains(Rectangle2D r)
测试Shape的内部Shape完全包含指定的Rectangle2D。Shape.contains()方法允许一个Shape实现保守地返回false当:-
intersect方法返回true和 - 确定
Shape是否完全包含Rectangle2D是非常昂贵的。
Shapes这种方法也可能返回false即使Shape包含Rectangle2D。Area类比大多数Shape对象执行更准确的几何计算,因此如果需要更精确的答案,则可以使用它。- Specified by:
-
contains在接口Shape - 参数
-
r- 指定的Rectangle2D - 结果
-
true如果内部的Shape完全包含Rectangle2D;false否则或如果Shape包含Rectangle2D和intersects方法返回true,并且包含计算将太昂贵执行。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Shape.contains(double, double, double, double)
-
-
getBounds
public Rectangle getBounds()
返回一个整数Rectangle完全包围Shape。 请注意,不保证返回的Rectangle是封闭的最小边界框Shape,只表示Shape完全在指定的范围内Rectangle。 如果Shape溢出整数数据类型的有限范围,则返回的Rectangle也可能无法完全包含Shape。getBounds2D方法通常返回更严格的边界框,因为它具有更大的表示灵活性。需要注意的是definition of insideness可能会导致出现对的定义轮廓点的情况下
shape可能不被认为包含在返回bounds对象,但只有在这些点也未审议了原有的情况下shape。如果
point是内部shape根据contains(point)方法,那么它必须是内部返回Rectangle界限根据对象contains(point)所述的方法bounds。 特别:shape.contains(x,y)需要bounds.contains(x,y)如果一个
point不在shape,那么它可能仍然包含在bounds对象中:bounds.contains(x,y)并不表示shape.contains(x,y)- Specified by:
-
getBounds在接口Shape - 结果
-
整数
Rectangle完全包围了Shape。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Shape.getBounds2D()
-
getPathIterator
public PathIterator getPathIterator(AffineTransform at, double flatness)
返回一个迭代器对象,该对象沿Shape对象的边界进行迭代,并提供对Shape对象的几何体轮廓的平坦化视图的访问。只有SEG_MOVETO,SEG_LINETO和SEG_CLOSE点类型将由迭代器返回。
曲线段的细分量由
flatness参数控制,该参数指定未平坦化变换曲线上的任何点可能偏离返回的平坦化路径段的最大距离。 可以指定可选的AffineTransform,以便相应地转换迭代中返回的坐标。- Specified by:
-
getPathIterator在接口Shape - 参数
-
at- 要在迭代中返回时应用于坐标的可选AffineTransform,如果需要未转换的坐标,null。 -
flatness- 用于近似曲线段的线段的最大距离允许偏离原始曲线上的任何点 - 结果
-
一个
PathIterator对象,可以访问Shape对象的展平几何。 - 从以下版本开始:
- 1.2
-
clone
public Object clone()
创建与该对象相同的类和新内容相同的新对象。- 重写:
-
clone在Object - 结果
- 这个实例的一个克隆。
- 异常
-
OutOfMemoryError- 如果没有足够的内存 - 从以下版本开始:
- 1.2
- 另请参见:
-
Cloneable
-
-