Module java.desktop
Package java.awt.geom

Class RectangularShape

java.lang.Object
java.awt.geom.RectangularShape
所有已实现的接口:
Shape, Cloneable
直接已知的子类:
Arc2D, Ellipse2D, Rectangle2D, RoundRectangle2D

public abstract class RectangularShape extends Object implements Shape, Cloneable
RectangularShape 是一些几何形状对象的基类,这些对象的几何形状由矩形框架定义。这个类本身并没有直接指定任何特定的几何形状,而只是提供了一整类 Shape 对象继承的操作方法。这个类提供的操作方法可用于查询和修改矩形框架,为子类定义其几何形状提供了参考。
自:
1.2
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    这是一个不能直接实例化的抽象类。
  • Method Summary

    Modifier and Type
    Method
    Description
    clone()
    创建一个与此对象相同类和相同内容的新对象。
    boolean
    测试指定的 Point2D 是否在 Shape 的边界内,如 内部定义
    boolean
    测试 Shape 的内部是否完全包含指定的 Rectangle2D
    返回完全包围 Shape 的整数 Rectangle
    double
    返回 Shape 的框架矩形的中心的 X 坐标,以 double 精度。
    double
    返回 Shape 的框架矩形的中心的 Y 坐标,以 double 精度。
    返回定义此对象整体形状的框架 Rectangle2D
    abstract double
    返回框架矩形的高度,以 double 精度。
    double
    返回 Shape 的框架矩形的最大 X 坐标,以 double 精度。
    double
    返回 Shape 的框架矩形的最大 Y 坐标,以 double 精度。
    double
    返回 Shape 的框架矩形的最小 X 坐标,以 double 精度。
    double
    返回 Shape 的框架矩形的最小 Y 坐标,以 double 精度。
    getPathIterator(AffineTransform at, double flatness)
    返回一个迭代器对象,沿着 Shape 对象的边界迭代,并提供对 Shape 对象几何形状轮廓的扁平视图的访问。
    abstract double
    返回框架矩形的宽度,以 double 精度。
    abstract double
    getX()
    返回框架矩形的左上角的 X 坐标,以 double 精度。
    abstract double
    getY()
    返回框架矩形的左上角的 Y 坐标,以 double 精度。
    boolean
    测试 Shape 的内部是否与指定的 Rectangle2D 的内部相交。
    abstract boolean
    确定 RectangularShape 是否为空。
    abstract void
    setFrame(double x, double y, double w, double h)
    将此 Shape 的框架矩形的位置和大小设置为指定的矩形值。
    void
    将此 Shape 的框架矩形的位置和大小分别设置为指定的 Point2DDimension2D
    void
    将此 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
    根据两个指定的 Point2D 对象设置此 Shape 的框架矩形的对角线。

    Methods declared in class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods declared in interface java.awt.Shape

    contains, contains, getBounds2D, getPathIterator, intersects
  • Constructor Details

  • Method Details

    • getX

      public abstract double getX()
      返回框架矩形的左上角的 X 坐标,以 double 精度。
      返回:
      框架矩形的左上角的 X 坐标。
      自:
      1.2
    • getY

      public abstract double getY()
      返回框架矩形的左上角的 Y 坐标,以 double 精度。
      返回:
      框架矩形的左上角的 Y 坐标。
      自:
      1.2
    • getWidth

      public abstract double getWidth()
      返回框架矩形的宽度,以 double 精度。
      返回:
      框架矩形的宽度。
      自:
      1.2
    • getHeight

      public abstract double getHeight()
      返回框架矩形的高度,以 double 精度。
      返回:
      框架矩形的高度。
      自:
      1.2
    • getMinX

      public double getMinX()
      返回 Shape 的框架矩形的最小 X 坐标,以 double 精度。
      返回:
      Shape 的框架矩形的最小 X 坐标。
      自:
      1.2
    • getMinY

      public double getMinY()
      返回 Shape 的框架矩形的最小 Y 坐标,以 double 精度。
      返回:
      Shape 的框架矩形的最小 Y 坐标。
      自:
      1.2
    • getMaxX

      public double getMaxX()
      返回 Shape 的框架矩形的最大 X 坐标,以 double 精度。
      返回:
      Shape 的框架矩形的最大 X 坐标。
      自:
      1.2
    • getMaxY

      public double getMaxY()
      返回 Shape 的框架矩形的最大 Y 坐标,以 double 精度。
      返回:
      Shape 的框架矩形的最大 Y 坐标。
      自:
      1.2
    • getCenterX

      public double getCenterX()
      返回 Shape 的框架矩形的中心的 X 坐标,以 double 精度。
      返回:
      Shape 的框架矩形的中心的 X 坐标。
      自:
      1.2
    • getCenterY

      public double getCenterY()
      返回 Shape 的框架矩形的中心的 Y 坐标,以 double 精度。
      返回:
      Shape 的框架矩形的中心的 Y 坐标。
      自:
      1.2
    • getFrame

      public Rectangle2D getFrame()
      返回定义此对象整体形状的框架 Rectangle2D
      返回:
      一个 Rectangle2D,以 double 坐标指定。
      自:
      1.2
      参见:
    • isEmpty

      public abstract boolean isEmpty()
      确定 RectangularShape 是否为空。当 RectangularShape 为空时,它不包含任何区域。
      返回:
      如果 RectangularShape 为空,则返回 true;否则返回 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
      参见:
    • setFrame

      public void setFrame(Point2D loc, Dimension2D size)
      将此 Shape 的框架矩形的位置和大小设置为指定的 Point2DDimension2D。子类的 RectangularShape 使用框架矩形来定义它们的几何形状。
      参数:
      loc - 指定的 Point2D
      size - 指定的 Dimension2D
      自:
      1.2
      参见:
    • setFrame

      public void setFrame(Rectangle2D r)
      将此Shape的框架矩形设置为指定的Rectangle2D。框架矩形由RectangularShape的子类用于定义它们的几何形状。
      参数:
      r - 指定的Rectangle2D
      自版本:
      1.2
      参见:
    • 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的边界内,如内部定义所述。
      接口实现:
      contains 在接口 Shape
      参数:
      p - 要测试的指定Point2D
      返回值:
      如果指定的Point2DShape的边界内,则返回true;否则返回false
      自版本:
      1.2
    • intersects

      public boolean intersects(Rectangle2D r)
      测试Shape的内部是否与指定的Rectangle2D的内部相交。当:
      • 有很高的概率Rectangle2DShape相交,但
      • 准确确定此交集的计算代价过高。
      时,Shape.intersects()方法允许Shape实现保守地返回true。这意味着对于某些Shapes,即使Rectangle2D不与Shape相交,此方法可能仍然返回true。与大多数Shape对象相比,Area类执行更准确的几何相交计算,因此如果需要更精确的答案,则可以使用该类。
      接口实现:
      intersects 在接口 Shape
      参数:
      r - 指定的Rectangle2D
      返回值:
      如果Shape的内部和指定的Rectangle2D的内部相交,或者两者很可能相交且计算交集的代价太高,则返回true;否则返回false
      自版本:
      1.2
      参见:
    • contains

      public boolean contains(Rectangle2D r)
      测试Shape的内部是否完全包含指定的Rectangle2D。当:
      • intersect方法返回true
      • 确定Shape是否完全包含Rectangle2D的计算代价过高。
      时,Shape.contains()方法允许Shape实现保守地返回false。这意味着对于某些Shapes,即使Shape包含Rectangle2D,此方法可能仍然返回false。与大多数Shape对象相比,Area类执行更准确的几何计算,因此如果需要更精确的答案,则可以使用该类。
      接口实现:
      contains 在接口 Shape
      参数:
      r - 指定的Rectangle2D
      返回值:
      如果Shape的内部完全包含Rectangle2D,则返回true;否则返回false,或者如果Shape包含Rectangle2Dintersects方法返回true且包含计算代价过高,则返回false
      自版本:
      1.2
      参见:
    • getBounds

      public Rectangle getBounds()
      返回一个完全包围Shape的整数Rectangle。请注意,返回的Rectangle不一定是最小的边界框,只是Shape完全位于指示的Rectangle内。如果Shape溢出整数数据类型的有限范围,则返回的Rectangle也可能无法完全包围Shape。由于其在表示上更灵活,getBounds2D方法通常返回更紧密的边界框。

      请注意,内部定义可能导致shape的定义轮廓上的点不被认为包含在返回的bounds对象中,但仅在这些点也不被认为包含在原始shape中的情况下。

      如果一个point根据contains(point)方法在shape内部,则根据boundscontains(point)方法,它必须在返回的Rectangle边界对象内部。具体来说:

      shape.contains(x,y)需要bounds.contains(x,y)

      如果一个point不在shape内部,则它可能仍然包含在bounds对象中:

      bounds.contains(x,y)不意味着shape.contains(x,y)

      接口实现:
      getBounds 在接口 Shape
      返回值:
      一个完全包围Shape的整数Rectangle
      自版本:
      1.2
      参见:
    • getPathIterator

      public PathIterator getPathIterator(AffineTransform at, double flatness)
      返回一个迭代器对象,该对象沿着Shape对象的边界迭代,并提供Shape对象几何形状轮廓的扁平视图。

      迭代器仅返回SEG_MOVETO、SEG_LINETO和SEG_CLOSE点类型。

      曲线段的细分量由flatness参数控制,该参数指定未扁平化的变换曲线上的任何点可以偏离返回的扁平化路径段的最大距离。可以指定一个可选的AffineTransform,以便迭代中返回的坐标相应地进行变换。

      接口实现:
      getPathIterator 在接口 Shape
      参数:
      at - 一个可选的AffineTransform,用于在迭代返回的坐标中应用变换,或者如果需要未变换的坐标,则为null
      flatness - 用于近似曲线段的线段允许偏离原始曲线上任何点的最大距离
      返回值:
      一个提供访问Shape对象的扁平化几何形状的PathIterator对象。
      自版本:
      1.2
    • clone

      public Object clone()
      创建一个与此对象相同类和相同内容的新对象。
      覆盖:
      clone 在类 Object
      返回:
      此实例的克隆。
      抛出:
      OutOfMemoryError - 如果内存不足。
      自从:
      1.2
      参见: