- 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
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
RectangularShape()
这是一个无法直接实例化的抽象类。
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 Object
clone()
创建与此对象具有相同类并具有相同内容的新对象。boolean
contains(Point2D p)
测试指定Point2D
是的边界内Shape
,如所描述的definition of insideness 。boolean
contains(Rectangle2D r)
测试Shape
的内部Shape
完全包含指定的Rectangle2D
。Rectangle
getBounds()
返回一个整数Rectangle
完全包围Shape
。double
getCenterX()
以double
精度返回Shape
的框架矩形中心的X坐标。double
getCenterY()
以double
精度返回Shape
的框架矩形中心的Y坐标。Rectangle2D
getFrame()
返回定义此对象的整体形状的框架Rectangle2D
。abstract double
getHeight()
以double
精度返回框架矩形的高度。double
getMaxX()
以double
精度返回Shape
的框架矩形的最大X坐标。double
getMaxY()
以double
精度返回Shape
的框架矩形的最大Y坐标。double
getMinX()
以double
精度返回Shape
的框架矩形的最小X坐标。double
getMinY()
以double
精度返回Shape
的框架矩形的最小Y坐标。PathIterator
getPathIterator(AffineTransform at, double flatness)
返回迭代器对象,该对象沿Shape
对象的边界进行迭代,并提供对Shape
对象几何轮廓的Shape
平视图的访问。abstract double
getWidth()
以double
精度返回框架矩形的宽度。abstract double
getX()
以double
精度返回框架矩形左上角的X坐标。abstract double
getY()
以double
精度返回框架矩形左上角的Y坐标。boolean
intersects(Rectangle2D r)
测试Shape
的内部是否与指定的Rectangle2D
的内部相交。abstract boolean
isEmpty()
确定RectangularShape
是否为空。abstract void
setFrame(double x, double y, double w, double h)
将此Shape
的框架矩形的位置和大小设置为指定的矩形值。void
setFrame(Point2D loc, Dimension2D size)
将此Shape
的框架矩形的位置和大小分别设置为指定的Point2D
和Dimension2D
。void
setFrame(Rectangle2D r)
将此Shape
的框架矩形设置为指定的Rectangle2D
。void
setFrameFromCenter(double centerX, double centerY, double cornerX, double cornerY)
根据指定的中心点坐标和角点坐标设置此Shape
的框架矩形。void
setFrameFromCenter(Point2D center, Point2D corner)
根据指定的中心Point2D
和角Point2D
设置此Shape
的框架矩形。void
setFrameFromDiagonal(double x1, double y1, double x2, double y2)
根据两个指定的坐标设置此Shape
的框架矩形的对角线。void
setFrameFromDiagonal(Point2D p1, Point2D p2)
根据两个指定的Point2D
对象设置此Shape
的框架矩形的对角线。-
声明方法的类 java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
声明方法的接口 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
精度返回Shape
的框架矩形中心的Y坐标。- 结果
-
Shape
框架矩形中心的Y坐标。 - 从以下版本开始:
- 1.2
-
getFrame
public Rectangle2D getFrame()
返回定义此对象的整体形状的框架Rectangle2D
。- 结果
-
a
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定义轮廓上的
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
对象几何体轮廓的Shape
平视图的访问。迭代器只返回SEG_MOVETO,SEG_LINETO和SEG_CLOSE点类型。
弯曲段的细分量由
flatness
参数控制,该参数指定未平坦变换曲线上的任何点可以偏离返回的平坦路径段的最大距离。 可以指定可选的AffineTransform
,以便相应地转换迭代中返回的坐标。- Specified by:
-
getPathIterator
在界面Shape
- 参数
-
at
- 在迭代中返回时应用于坐标的可选AffineTransform
null
如果需要未转换的坐标,则null
。 -
flatness
- 允许线段用于近似弯曲段的最大距离偏离原始曲线上的任何点 - 结果
-
PathIterator
对象,提供对Shape
对象的展平几何体的访问。 - 从以下版本开始:
- 1.2
-
clone
public Object clone()
创建与此对象具有相同类并具有相同内容的新对象。- 重写:
-
clone
在类Object
- 结果
- 这个实例的克隆。
- 异常
-
OutOfMemoryError
- 如果内存不足。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Cloneable
-
-