模块  java.desktop
软件包  java.awt

Class Graphics

  • 已知直接子类:
    DebugGraphicsGraphics2D

    public abstract class Graphicsextends Object
    Graphics类是所有图形上下文的抽象基类,允许应用程序绘制到在各种设备上实现的组件以及屏幕外图像。

    Graphics对象封装了Java支持的基本呈现操作所需的状态信息。 此状态信息包括以下属性:

    • 要绘制的Component对象。
    • 渲染和裁剪坐标的平移原点。
    • 当前剪辑。
    • 目前的颜色。
    • 当前的字体。
    • 当前逻辑像素操作函数(XOR或Paint)。
    • 当前XOR交替颜色(见setXORMode(java.awt.Color) )。

    坐标无限薄,位于输出设备的像素之间。 绘制图形轮廓的操作通过遍历像素之间的无限细路径来操作,像素大小的笔垂直向下并且在路径上的锚点的右侧。 填充图形的操作通过填充无限细路径的内部来操作。 渲染水平文本的操作将字符字形的上升部分完全渲染到基线坐标之上。

    图形笔从其遍历的路径向下和向右垂下。 这具有以下含义:

    • 如果绘制覆盖给定矩形的图形,则与填充由同一矩形限定的图形相比,该图形在右边缘和底部边缘占据一行额外像素。
    • 如果沿着与文本行的基线相同的y坐标绘制水平线,则该线将完全绘制在文本下方,除了任何下延器。

    显示作为参数传递给该方法的所有坐标Graphics对象,都是相对于这个翻译的起源Graphics之前的方法的调用对象。

    所有渲染操作仅修改位于由当前剪辑限定的区域内的像素,该区域由用户空间中的Shape指定,并由程序使用Graphics对象控制。 用户剪辑将转换为设备空间并与设备剪辑组合, 设备剪辑由窗口和设备范围的可见性定义。 用户剪辑和设备剪辑的组合定义了复合剪辑 ,它决定了最终裁剪区域。 渲染系统无法修改用户剪辑以反映生成的复合剪辑。 用户剪辑只能通过setClipclipRect方法进行更改。 所有绘图或书写都是使用当前颜色模式和当前字体以当前颜色完成的。

    从以下版本开始:
    1.0
    另请参见:
    ComponentclipRect(int, int, int, int)setColor(java.awt.Color)setPaintMode()setXORMode(java.awt.Color)setFont(java.awt.Font)
    • 构造方法摘要

      构造方法  
      变量 构造器 描述
      protected Graphics()
      构造一个新的 Graphics对象。
    • 方法摘要

      所有方法  实例方法 抽象方法  具体的方法  弃用的方法 
      变量和类型 方法 描述
      abstract void clearRect​(int x, int y, int width, int height)
      通过使用当前绘图表面的背景颜色填充指定的矩形来清除它。
      abstract void clipRect​(int x, int y, int width, int height)
      将当前剪辑与指定的矩形相交。
      abstract void copyArea​(int x, int y, int width, int height, int dx, int dy)
      按组件 dxdy指定的距离复制组件的区域。
      abstract Graphics create()
      创建一个新的 Graphics对象,该对象是此 Graphics对象的副本。
      Graphics create​(int x, int y, int width, int height)
      基于此 Graphics对象创建新的 Graphics对象,但具有新的平移和剪辑区域。
      abstract void dispose()
      处置此图形上下文并释放它正在使用的任何系统资源。
      void draw3DRect​(int x, int y, int width, int height, boolean raised)
      绘制指定矩形的三维突出显示轮廓。
      abstract void drawArc​(int x, int y, int width, int height, int startAngle, int arcAngle)
      绘制覆盖指定矩形的圆形或椭圆弧的轮廓。
      void drawBytes​(byte[] data, int offset, int length, int x, int y)
      使用此图形上下文的当前字体和颜色绘制由指定字节数组给出的文本。
      void drawChars​(char[] data, int offset, int length, int x, int y)
      使用此图形上下文的当前字体和颜色绘制指定字符数组给出的文本。
      abstract boolean drawImage​(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)
      绘制与当前可用的指定图像一样多的指定区域,即时缩放它以适合目标可绘制表面的指定区域。
      abstract boolean drawImage​(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
      绘制与当前可用的指定图像一样多的指定区域,即时缩放它以适合目标可绘制表面的指定区域。
      abstract boolean drawImage​(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)
      绘制已经缩放以适合指定矩形内部的指定图像。
      abstract boolean drawImage​(Image img, int x, int y, int width, int height, ImageObserver observer)
      绘制已经缩放以适合指定矩形内部的指定图像。
      abstract boolean drawImage​(Image img, int x, int y, Color bgcolor, ImageObserver observer)
      绘制尽可能多的指定图像。
      abstract boolean drawImage​(Image img, int x, int y, ImageObserver observer)
      绘制尽可能多的指定图像。
      abstract void drawLine​(int x1, int y1, int x2, int y2)
      在此图形上下文的坐标系中,使用当前颜色在点 (x1, y1)(x2, y2)之间绘制一条线。
      abstract void drawOval​(int x, int y, int width, int height)
      绘制椭圆的轮廓。
      abstract void drawPolygon​(int[] xPoints, int[] yPoints, int nPoints)
      绘制由 xy坐标数组定义的闭合多边形。
      void drawPolygon​(Polygon p)
      绘制由指定的 Polygon对象定义的多边形的轮廓。
      abstract void drawPolyline​(int[] xPoints, int[] yPoints, int nPoints)
      绘制由 xy坐标数组定义的一系列连通线。
      void drawRect​(int x, int y, int width, int height)
      绘制指定矩形的轮廓。
      abstract void drawRoundRect​(int x, int y, int width, int height, int arcWidth, int arcHeight)
      使用此图形上下文的当前颜色绘制轮廓圆角矩形。
      abstract void drawString​(String str, int x, int y)
      使用此图形上下文的当前字体和颜色绘制由指定字符串给出的文本。
      abstract void drawString​(AttributedCharacterIterator iterator, int x, int y)
      根据TextAttribute类的规范,呈现指定迭代器的文本,并应用其属性。
      void fill3DRect​(int x, int y, int width, int height, boolean raised)
      绘制一个用当前颜色填充的三维高亮矩形。
      abstract void fillArc​(int x, int y, int width, int height, int startAngle, int arcAngle)
      填充覆盖指定矩形的圆形或椭圆形弧。
      abstract void fillOval​(int x, int y, int width, int height)
      使用当前颜色填充由指定矩形限定的椭圆。
      abstract void fillPolygon​(int[] xPoints, int[] yPoints, int nPoints)
      填充由 xy坐标数组定义的闭合多边形。
      void fillPolygon​(Polygon p)
      使用图形上下文的当前颜色填充由指定的Polygon对象定义的多边形。
      abstract void fillRect​(int x, int y, int width, int height)
      填充指定的矩形。
      abstract void fillRoundRect​(int x, int y, int width, int height, int arcWidth, int arcHeight)
      使用当前颜色填充指定的圆角矩形。
      void finalize()
      已过时。
      finalize方法已被弃用。
      abstract Shape getClip()
      获取当前剪切区域。
      abstract Rectangle getClipBounds()
      返回当前剪切区域的边界矩形。
      Rectangle getClipBounds​(Rectangle r)
      返回当前剪切区域的边界矩形。
      Rectangle getClipRect()
      已过时。
      截至JDK 1.1版,由getClipBounds()取代。
      abstract Color getColor()
      获取此图形上下文的当前颜色。
      abstract Font getFont()
      获取当前字体。
      FontMetrics getFontMetrics()
      获取当前字体的字体度量。
      abstract FontMetrics getFontMetrics​(Font f)
      获取指定字体的字体度量标准。
      boolean hitClip​(int x, int y, int width, int height)
      如果指定的矩形区域可能与当前剪切区域相交,则返回true。
      abstract void setClip​(int x, int y, int width, int height)
      将当前剪辑设置为给定坐标指定的矩形。
      abstract void setClip​(Shape clip)
      将当前剪切区域设置为任意剪辑形状。
      abstract void setColor​(Color c)
      将此图形上下文的当前颜色设置为指定的颜色。
      abstract void setFont​(Font font)
      将此图形上下文的字体设置为指定的字体。
      abstract void setPaintMode()
      设置此图形上下文的绘制模式,以使用此图形上下文的当前颜色覆盖目标。
      abstract void setXORMode​(Color c1)
      设置此图形上下文的绘制模式,以在此图形上下文的当前颜色和新指定颜色之间切换。
      String toString()
      返回 String表示此对象 Graphics对象的值。
      abstract void translate​(int x, int y)
      将图形上下文的原点转换为当前坐标系中的点( xy )。
    • 构造方法详细信息

      • Graphics

        protected Graphics()
        构造一个新的Graphics对象。 此构造函数是图形上下文的默认构造函数。

        由于Graphics是一个抽象类,因此应用程序无法直接调用此构造函数。 图形上下文从其他图形上下文获取,或通过在组件上调用getGraphics创建。

        另请参见:
        create()Component.getGraphics()
    • 方法详细信息

      • create

        public abstract Graphics create()
        创建一个新的 Graphics对象,该对象是此 Graphics对象的副本。
        结果
        一个新的图形上下文,它是此图形上下文的副本。
      • create

        public Graphics create​(int x,                       int y,                       int width,                       int height)
        基于此Graphics对象创建新的Graphics对象,但具有新的平移和剪辑区域。 新的Graphics对象的原点已转换为指定的点( xy )。 其剪辑区域由原始剪辑区域与指定矩形的交集确定。 参数都在原始Graphics对象的坐标系中解释。 除了两个方面外,新的图形上下文与原始图形相同:
        • 新图形上下文由( xy )转换。 也就是说,点( 00在新的图形上下文)是一样的(X,Y)的原始图形上下文。
        • 除了从原始图形上下文继承的任何(已翻译的)剪切矩形之外,新图形上下文还有一个额外的剪切矩形。 新的剪辑矩形的原点是在( 00 ),以及由指定其大小widthheight参数。
        参数
        x - x坐标。
        y - y坐标。
        width - 剪切矩形的宽度。
        height - 剪切矩形的高度。
        结果
        一个新的图形上下文。
        另请参见:
        translate(int, int)clipRect(int, int, int, int)
      • translate

        public abstract void translate​(int x,                               int y)
        将图形上下文的原点转换为当前坐标系中的点( xy )。 修改此图形上下文,使其新原点对应于此图形上下文的原始坐标系中的点( xy )。 在此图形上下文的后续渲染操作中使用的所有坐标都将相对于此新原点。
        参数
        x - x坐标。
        y - y坐标。
      • getColor

        public abstract Color getColor()
        获取此图形上下文的当前颜色。
        结果
        此图形上下文的当前颜色。
        另请参见:
        ColorsetColor(Color)
      • setColor

        public abstract void setColor​(Color c)
        将此图形上下文的当前颜色设置为指定的颜色。 使用此图形上下文的所有后续图形操作都使用此指定颜色。
        参数
        c - 新的渲染颜色。
        另请参见:
        ColorgetColor()
      • setPaintMode

        public abstract void setPaintMode()
        设置此图形上下文的绘制模式,以使用此图形上下文的当前颜色覆盖目标。 这将逻辑像素操作功能设置为绘画或覆盖模式。 所有后续渲染操作都将使用当前颜色覆盖目标。
      • setXORMode

        public abstract void setXORMode​(Color c1)
        设置此图形上下文的绘制模式,以在此图形上下文的当前颜色和新指定颜色之间切换。 这指定在XOR模式下执行逻辑像素操作,其在当前颜色和指定的XOR颜色之间交替像素。

        当执行绘图操作时,作为当前颜色的像素被改变为指定的颜色,反之亦然。

        具有除这两种颜色之外的颜色的像素以不可预测但可逆的方式改变; 如果两次绘制相同的图形,则所有像素都将恢复为原始值。

        参数
        c1 - XOR交替颜色
      • getFont

        public abstract Font getFont()
        获取当前字体。
        结果
        此图形上下文的当前字体。
        另请参见:
        FontsetFont(Font)
      • getClipBounds

        public abstract Rectangle getClipBounds()
        返回当前剪切区域的边界矩形。 此方法引用用户剪辑,该剪辑独立于与设备边界和窗口可见性相关联的剪辑。 如果先前未设置剪辑,或者已使用setClip(null)清除剪辑,则此方法返回null 矩形中的坐标相对于此图形上下文的坐标系原点。
        结果
        当前剪切区域的边界矩形,如果未设置剪辑, null
        从以下版本开始:
        1.1
        另请参见:
        getClip()clipRect(int, int, int, int)setClip(int, int, int, int)setClip(Shape)
      • clipRect

        public abstract void clipRect​(int x,                              int y,                              int width,                              int height)
        将当前剪辑与指定的矩形相交。 生成的剪切区域是当前剪切区域和指定矩形的交集。 如果没有当前剪切区域,或者因为剪辑从未设置过,或者剪辑已使用setClip(null)清除,则指定的矩形将成为新剪辑。 此方法设置用户剪辑,该剪辑独立于与设备边界和窗口可见性相关联的剪辑。 此方法只能用于使当前剪辑更小。 要将当前剪辑设置得更大,请使用任何setClip方法。 渲染操作在剪切区域之外没有影响。
        参数
        x - 与剪辑相交的矩形的x坐标
        y - 与剪辑相交的矩形的y坐标
        width - 与剪辑相交的矩形的宽度
        height - 与剪辑相交的矩形的高度
        另请参见:
        setClip(int, int, int, int)setClip(Shape)
      • setClip

        public abstract void setClip​(int x,                             int y,                             int width,                             int height)
        将当前剪辑设置为给定坐标指定的矩形。 此方法设置用户剪辑,该剪辑独立于与设备边界和窗口可见性相关联的剪辑。 渲染操作在剪切区域之外没有影响。
        参数
        x - 新剪辑矩形的 x坐标。
        y - 新剪辑矩形的 y坐标。
        width - 新剪辑矩形的宽度。
        height - 新剪辑矩形的高度。
        从以下版本开始:
        1.1
        另请参见:
        clipRect(int, int, int, int)setClip(Shape)getClip()
      • getClip

        public abstract Shape getClip()
        获取当前剪切区域。 此方法返回用户剪辑,该剪辑独立于与设备边界和窗口可见性关联的剪辑。 如果先前未设置剪辑,或者已使用setClip(null)清除剪辑,则此方法返回null
        结果
        表示当前剪切区域的 Shape对象,如果未设置剪辑, null
        从以下版本开始:
        1.1
        另请参见:
        getClipBounds()clipRect(int, int, int, int)setClip(int, int, int, int)setClip(Shape)
      • setClip

        public abstract void setClip​(Shape clip)
        将当前剪切区域设置为任意剪辑形状。 并非所有实现Shape接口的对象都可用于设置剪辑。 Shape被保证将支持的对象是Shape ,它们通过所获得的对象getClip方法和经由Rectangle对象。 此方法设置用户剪辑,该剪辑独立于与设备边界和窗口可见性相关联的剪辑。
        参数
        clip - 用于设置剪辑的 Shape
        从以下版本开始:
        1.1
        另请参见:
        getClip()clipRect(int, int, int, int)setClip(int, int, int, int)
      • copyArea

        public abstract void copyArea​(int x,                              int y,                              int width,                              int height,                              int dx,                              int dy)
        按组件dxdy指定的距离复制组件的区域。 xy指定的点y ,此方法向下和向右复制。 要向左或向上复制组件的区域,请为dxdy指定负值。 如果源矩形的一部分位于组件的边界之外,或者被另一个窗口或组件遮挡,则copyArea将无法复制关联的像素。 可以通过调用组件的paint方法刷新省略的区域。
        参数
        x - 源矩形的 x坐标。
        y - 源矩形的 y坐标。
        width - 源矩形的宽度。
        height - 源矩形的高度。
        dx - 复制像素的水平距离。
        dy - 复制像素的垂直距离。
      • drawLine

        public abstract void drawLine​(int x1,                              int y1,                              int x2,                              int y2)
        在此图形上下文的坐标系中,使用当前颜色在点 (x1, y1)(x2, y2)之间绘制一条线。
        参数
        x1 - 第一个点的 x坐标。
        y1 - 第一个点的 y坐标。
        x2 - 第二个点的 x坐标。
        y2 - 第二个点的 y坐标。
      • fillRect

        public abstract void fillRect​(int x,                              int y,                              int width,                              int height)
        填充指定的矩形。 矩形的左右边缘位于xx + width - 1 顶部和底部边缘位于yy + height - 1 得到的矩形覆盖了width像素宽, height像素高的区域。 使用图形上下文的当前颜色填充矩形。
        参数
        x - 要填充的矩形的 x坐标。
        y - 要填充的矩形的 y坐标。
        width - 要填充的矩形的宽度。
        height - 要填充的矩形的高度。
        另请参见:
        clearRect(int, int, int, int)drawRect(int, int, int, int)
      • drawRect

        public void drawRect​(int x,                     int y,                     int width,                     int height)
        绘制指定矩形的轮廓。 矩形的左右边缘位于xx + width 顶部和底部边缘位于yy + height 使用图形上下文的当前颜色绘制矩形。
        参数
        x - 要绘制的矩形的 x坐标。
        y - 要绘制的矩形的 y坐标。
        width - 要绘制的矩形的宽度。
        height - 要绘制的矩形的高度。
        另请参见:
        fillRect(int, int, int, int)clearRect(int, int, int, int)
      • clearRect

        public abstract void clearRect​(int x,                               int y,                               int width,                               int height)
        通过使用当前绘图表面的背景颜色填充指定的矩形来清除它。 此操作不使用当前的绘制模式。

        从Java 1.1开始,屏幕外图像的背景颜色可能与系统有关。 应用程序应使用setColor然后使用fillRect以确保将屏幕外图像清除为特定颜色。

        参数
        x - 要清除的矩形的 x坐标。
        y - 要清除的矩形的 y坐标。
        width - 要清除的矩形的宽度。
        height - 要清除的矩形的高度。
        另请参见:
        fillRect(int, int, int, int)drawRect(int, int, int, int)setColor(java.awt.Color)setPaintMode()setXORMode(java.awt.Color)
      • drawRoundRect

        public abstract void drawRoundRect​(int x,                                   int y,                                   int width,                                   int height,                                   int arcWidth,                                   int arcHeight)
        使用此图形上下文的当前颜色绘制轮廓圆角矩形。 矩形的左右边缘分别为xx + width 矩形的顶部和底部边缘位于yy + height
        参数
        x - 要绘制的矩形的 x坐标。
        y - 要绘制的矩形的 y坐标。
        width - 要绘制的矩形的宽度。
        height - 要绘制的矩形的高度。
        arcWidth - 四角处弧的水平直径。
        arcHeight - 四角处弧的垂直直径。
        另请参见:
        fillRoundRect(int, int, int, int, int, int)
      • fillRoundRect

        public abstract void fillRoundRect​(int x,                                   int y,                                   int width,                                   int height,                                   int arcWidth,                                   int arcHeight)
        使用当前颜色填充指定的圆角矩形。 矩形的左右边缘分别为xx + width - 1 矩形的顶部和底部边缘位于yy + height - 1
        参数
        x - 要填充的矩形的 x坐标。
        y - 要填充的矩形的 y坐标。
        width - 要填充的矩形的宽度。
        height - 要填充的矩形的高度。
        arcWidth - 四角处弧的水平直径。
        arcHeight - 四角处弧的垂直直径。
        另请参见:
        drawRoundRect(int, int, int, int, int, int)
      • draw3DRect

        public void draw3DRect​(int x,                       int y,                       int width,                       int height,                       boolean raised)
        绘制指定矩形的三维突出显示轮廓。 矩形的边缘突出显示,使它们看起来是斜角并从左上角点亮。

        用于突出显示效果的颜色基于当前颜色确定。 生成的矩形覆盖的区域为width + 1像素宽,高height + 1像素。

        参数
        x - 要绘制的矩形的 x坐标。
        y - 要绘制的矩形的 y坐标。
        width - 要绘制的矩形的宽度。
        height - 要绘制的矩形的高度。
        raised - 一个布尔值,用于确定矩形是显示在曲面上方还是沉入曲面中。
        另请参见:
        fill3DRect(int, int, int, int, boolean)
      • fill3DRect

        public void fill3DRect​(int x,                       int y,                       int width,                       int height,                       boolean raised)
        绘制一个用当前颜色填充的三维高亮矩形。 矩形的边缘将突出显示,使其看起来好像边缘是从左上角开始倾斜和点亮的。 用于突出显示效果的颜色将根据当前颜色确定。
        参数
        x - 要填充的矩形的 x坐标。
        y - 要填充的矩形的 y坐标。
        width - 要填充的矩形的宽度。
        height - 要填充的矩形的高度。
        raised - 一个布尔值,用于确定矩形是显示在曲面上方还是蚀刻到曲面中。
        另请参见:
        draw3DRect(int, int, int, int, boolean)
      • drawOval

        public abstract void drawOval​(int x,                              int y,                              int width,                              int height)
        绘制椭圆的轮廓。 其结果是由指定的矩形内配合在一个圆或椭圆xywidth ,和height参数。

        椭圆形的面积为width + 1像素宽, height + 1像素高。

        参数
        x - 要绘制的椭圆的左上角的 x坐标。
        y - 要绘制的椭圆的左上角的 y坐标。
        width - 要绘制的椭圆的宽度。
        height - 要绘制的椭圆的高度。
        另请参见:
        fillOval(int, int, int, int)
      • fillOval

        public abstract void fillOval​(int x,                              int y,                              int width,                              int height)
        使用当前颜色填充由指定矩形限定的椭圆。
        参数
        x - 要填充的椭圆的左上角的 x坐标。
        y - 要填充的椭圆的左上角的 y坐标。
        width - 要填充的椭圆的宽度。
        height - 要填充的椭圆的高度。
        另请参见:
        drawOval(int, int, int, int)
      • drawArc

        public abstract void drawArc​(int x,                             int y,                             int width,                             int height,                             int startAngle,                             int arcAngle)
        绘制覆盖指定矩形的圆形或椭圆弧的轮廓。

        生成的弧线从startAngle开始,并使用当前颜色延伸arcAngle度。 角度被解释为0度位于3点钟位置。 正值表示逆时针旋转,而负值表示顺时针旋转。

        弧的中心是矩形的中心,其原点是( xy ),其大小由widthheight参数指定。

        由此产生的弧覆盖面积为width + 1像素宽,高height + 1像素高。

        相对于边界矩形的非方形范围指定角度,使得45度总是落在从椭圆的中心到边界矩形的右上角的线上。 因此,如果边界矩形在一个轴上明显长于另一个轴,则弧段开始和结束的角度将沿着边界的长轴进一步偏斜。

        参数
        x - 要绘制的圆弧左上角的 x坐标。
        y - 要绘制的圆弧左上角的 y坐标。
        width - 要绘制的弧的宽度。
        height - 要绘制的弧的高度。
        startAngle - 起始角度。
        arcAngle - 弧的角度范围,相对于起始角度。
        另请参见:
        fillArc(int, int, int, int, int, int)
      • fillArc

        public abstract void fillArc​(int x,                             int y,                             int width,                             int height,                             int startAngle,                             int arcAngle)
        填充覆盖指定矩形的圆形或椭圆形弧。

        结果弧开始于startAngle并延伸至arcAngle度。 角度被解释为0度位于3点钟位置。 正值表示逆时针旋转,而负值表示顺时针旋转。

        弧的中心是矩形的中心,其原点是( xy ),其大小由widthheight参数指定。

        由此产生的弧覆盖面积为width + 1像素宽,高height + 1像素高。

        相对于边界矩形的非方形范围指定角度,使得45度总是落在从椭圆的中心到边界矩形的右上角的线上。 因此,如果边界矩形在一个轴上明显长于另一个轴,则弧段开始和结束的角度将沿着边界的长轴进一步偏斜。

        参数
        x - 要填充的圆弧左上角的 x坐标。
        y - 要填充的圆弧左上角的 y坐标。
        width - 要填充的弧的宽度。
        height - 要填充的弧的高度。
        startAngle - 起始角度。
        arcAngle - 弧的角度范围,相对于起始角度。
        另请参见:
        drawArc(int, int, int, int, int, int)
      • drawPolyline

        public abstract void drawPolyline​(int[] xPoints,                                  int[] yPoints,                                  int nPoints)
        绘制由xy坐标数组定义的一系列连通线。 每对( xy )坐标定义一个点。 如果第一个点与最后一个点不同,则该数字不会关闭。
        参数
        xPoints - 一个 x点数组
        yPoints - 一组 y
        nPoints - 总分数
        从以下版本开始:
        1.1
        另请参见:
        drawPolygon(int[], int[], int)
      • drawPolygon

        public abstract void drawPolygon​(int[] xPoints,                                 int[] yPoints,                                 int nPoints)
        绘制由xy坐标数组定义的闭合多边形。 每对( xy )坐标定义一个点。

        此方法绘制由nPoint线段定义的多边形,其中第一个nPoint - 1线段是从(xPoints[i - 1], yPoints[i - 1])(xPoints[i], yPoints[i]) ,为1‰ i nPoints 如果这些点不同,则通过绘制将最终点连接到第一个点的线自动关闭该图。

        参数
        xPoints - 一个 x坐标数组。
        yPoints - 一个 y坐标的数组。
        nPoints - 总分数。
        另请参见:
        fillPolygon(int[], int[], int)drawPolyline(int[], int[], int)
      • fillPolygon

        public abstract void fillPolygon​(int[] xPoints,                                 int[] yPoints,                                 int nPoints)
        填充由xy坐标数组定义的闭合多边形。

        此方法绘制由nPoint线段定义的多边形,其中第一个nPoint - 1线段是从(xPoints[i - 1], yPoints[i - 1])(xPoints[i], yPoints[i]) ,用于1‰ i nPoints 如果这些点不同,则通过绘制将最终点连接到第一个点的线自动关闭该图。

        多边形内的区域使用偶数奇数填充规则定义,也称为交替规则。

        参数
        xPoints - 一个 x坐标数组。
        yPoints - 一个 y坐标的数组。
        nPoints - 总分数。
        另请参见:
        drawPolygon(int[], int[], int)
      • fillPolygon

        public void fillPolygon​(Polygon p)
        使用图形上下文的当前颜色填充由指定的Polygon对象定义的多边形。

        多边形内的区域使用偶数奇数填充规则定义,也称为交替规则。

        参数
        p - 要填充的多边形。
        另请参见:
        drawPolygon(int[], int[], int)
      • drawChars

        public void drawChars​(char[] data,                      int offset,                      int length,                      int x,                      int y)
        使用此图形上下文的当前字体和颜色绘制指定字符数组给出的文本。 第一个字符的基线位于此图形上下文的坐标系中的位置( xy )。
        参数
        data - 要绘制的字符数组
        offset - 数据中的起始偏移量
        length - 要绘制的字符数
        x - 文本基线的 x坐标
        y - 文本基线的 y坐标
        异常
        NullPointerException - 如果 datanull
        IndexOutOfBoundsException - 如果 offsetlength小于零,或者 offset+length大于 data数组的长度。
        另请参见:
        drawBytes(byte[], int, int, int, int)drawString(java.lang.String, int, int)
      • drawBytes

        public void drawBytes​(byte[] data,                      int offset,                      int length,                      int x,                      int y)
        使用此图形上下文的当前字体和颜色绘制由指定字节数组给出的文本。 第一个字符的基线位于此图形上下文的坐标系中的位置( xy )。

        建议不要使用此方法,因为每个字节都被解释为0到255范围内的Unicode代码点,因此只能用于绘制该范围内的拉丁字符。

        参数
        data - 要绘制的数据
        offset - 数据中的起始偏移量
        length - 绘制的字节数
        x - 文本基线的 x坐标
        y - 文本基线的 y坐标
        异常
        NullPointerException - 如果 datanull
        IndexOutOfBoundsException - 如果 offsetlength小于零,或者 offset+length大于 data数组的长度。
        另请参见:
        drawChars(char[], int, int, int, int)drawString(java.lang.String, int, int)
      • drawImage

        public abstract boolean drawImage​(Image img,                                  int x,                                  int y,                                  ImageObserver observer)
        绘制尽可能多的指定图像。 在此图形上下文的坐标空间中,图像以其左上角( xy )绘制。 图像中的透明像素不会影响已存在的任何像素。

        即使尚未加载完整图像,此方法也会在所有情况下立即返回,并且尚未针对当前输出设备进行抖动和转换。

        如果图像已完全加载且其像素不再更改,则drawImage将返回true 否则, drawImage返回false并且随着更多图像变得可用或是时候绘制另一帧动画,加载图像的过程会通知指定的图像观察者。

        参数
        img - 要绘制的指定图像。 如果img为null,则此方法不执行任何img
        x - x坐标。
        y - y坐标。
        observer - 要转换更多图像时要通知的对象。
        结果
        false如果图像像素仍在变化; 否则为true
        另请参见:
        ImageImageObserverImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)
      • drawImage

        public abstract boolean drawImage​(Image img,                                  int x,                                  int y,                                  int width,                                  int height,                                  ImageObserver observer)
        绘制已经缩放以适合指定矩形内部的指定图像。

        图像在此图形上下文的坐标空间的指定矩形内绘制,并在必要时进行缩放。 透明像素不会影响已存在的任何像素。

        即使整个图像尚未针对当前输出设备进行缩放,抖动和转换,此方法在所有情况下都会立即返回。 如果当前输出表示尚未完成,则drawImage返回false 随着更多图像变得可用,加载图像的过程通过调用其imageUpdate方法来通知图像观察者。

        由于已为此输出设备构建了未缩放版本的图像,因此图像的缩放版本不一定立即可用。 可以单独地高速缓存图像的每个尺寸,并且在单独的图像生成序列中从原始数据生成图像。

        参数
        img - 要绘制的指定图像。 如果img为null,则此方法不执行任何img
        x - x坐标。
        y - y坐标。
        width - 矩形的宽度。
        height - 矩形的高度。
        observer - 在转换更多图像时要通知的对象。
        结果
        false如果图像像素仍在变化; 否则为true
        另请参见:
        ImageImageObserverImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)
      • drawImage

        public abstract boolean drawImage​(Image img,                                  int x,                                  int y,                                  Color bgcolor,                                  ImageObserver observer)
        绘制尽可能多的指定图像。 在此图形上下文的坐标空间中,图像以其左上角( xy )绘制。 透明像素以指定的背景颜色绘制。

        此操作相当于使用给定颜色填充指定图像的宽度和高度的矩形,然后在其上绘制图像,但可能更有效。

        即使尚未加载完整图像,此方法也会在所有情况下立即返回,并且尚未针对当前输出设备进行抖动和转换。

        如果图像已完全加载且其像素不再更改,则drawImage将返回true 否则, drawImage返回false并且随着更多图像变得可用或是时候绘制另一帧动画,加载图像的过程会通知指定的图像观察者。

        参数
        img - 要绘制的指定图像。 如果img为null,则此方法不执行任何img
        x - x坐标。
        y - y坐标。
        bgcolor - 要在图像的非不透明部分下绘制的背景颜色。
        observer - 在转换更多图像时要通知的对象。
        结果
        false如果图像像素仍在变化; 否则为true
        另请参见:
        ImageImageObserverImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)
      • drawImage

        public abstract boolean drawImage​(Image img,                                  int x,                                  int y,                                  int width,                                  int height,                                  Color bgcolor,                                  ImageObserver observer)
        绘制已经缩放以适合指定矩形内部的指定图像。

        图像在此图形上下文的坐标空间的指定矩形内绘制,并在必要时进行缩放。 透明像素以指定的背景颜色绘制。 此操作相当于使用给定颜色填充指定图像的宽度和高度的矩形,然后在其上绘制图像,但可能更有效。

        即使整个图像尚未针对当前输出设备进行缩放,抖动和转换,此方法在所有情况下都会立即返回。 如果当前输出表示尚未完成,则drawImage将返回false 随着更多图像变得可用,加载图像的过程会通知指定的图像观察者。

        由于已为此输出设备构建了未缩放版本的图像,因此图像的缩放版本不一定立即可用。 可以单独地高速缓存图像的每个尺寸,并且在单独的图像生成序列中从原始数据生成图像。

        参数
        img - 要绘制的指定图像。 如果img为null,则此方法不执行任何img
        x - x坐标。
        y - y坐标。
        width - 矩形的宽度。
        height - 矩形的高度。
        bgcolor - 要在图像的非不透明部分下绘制的背景颜色。
        observer - 在转换更多图像时要通知的对象。
        结果
        false如果图像像素仍在变化; 否则为true
        另请参见:
        ImageImageObserverImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)
      • drawImage

        public abstract boolean drawImage​(Image img,                                  int dx1,                                  int dy1,                                  int dx2,                                  int dy2,                                  int sx1,                                  int sy1,                                  int sx2,                                  int sy2,                                  ImageObserver observer)
        绘制与当前可用的指定图像一样多的指定区域,即时缩放它以适合目标可绘制表面的指定区域。 透明像素不会影响已存在的任何像素。

        即使要绘制的图像区域尚未针对当前输出设备进行缩放,抖动和转换,此方法在所有情况下都会立即返回。 如果当前输出表示尚未完成,则drawImage将返回false 随着更多图像变得可用,加载图像的过程会通知指定的图像观察者。

        此方法始终使用图像的未缩放版本来渲染缩放的矩形,并在运行中执行所需的缩放。 它不会为此操作使用缓存的缩放版本的图像。 执行从源到目的地的图像缩放,使得源矩形的第一坐标被映射到目标矩形的第一坐标,并且第二源坐标被映射到第二目标坐标。 子图像根据需要进行缩放和翻转以保留这些映射。

        参数
        img - 要绘制的指定图像。 如果img为null,则此方法不执行任何img
        dx1 - 目标矩形的第一个角的 x坐标。
        dy1 - 目标矩形的第一个角的 y坐标。
        dx2 - 目标矩形的第二个角的 x坐标。
        dy2 - 目标矩形的第二个角的 y坐标。
        sx1 - 源矩形的第一个角的 x坐标。
        sy1 - 源矩形的第一个角的 y坐标。
        sx2 - 源矩形的第二个角的 x坐标。
        sy2 - 源矩形第二个角的 y坐标。
        observer - 缩放和转换更多图像时要通知的对象。
        结果
        false如果图像像素仍在变化; 否则为true
        从以下版本开始:
        1.1
        另请参见:
        ImageImageObserverImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)
      • drawImage

        public abstract boolean drawImage​(Image img,                                  int dx1,                                  int dy1,                                  int dx2,                                  int dy2,                                  int sx1,                                  int sy1,                                  int sx2,                                  int sy2,                                  Color bgcolor,                                  ImageObserver observer)
        绘制与当前可用的指定图像一样多的指定区域,即时缩放它以适合目标可绘制表面的指定区域。

        透明像素以指定的背景颜色绘制。 此操作相当于使用给定颜色填充指定图像的宽度和高度的矩形,然后在其上绘制图像,但可能更有效。

        即使要绘制的图像区域尚未针对当前输出设备进行缩放,抖动和转换,此方法在所有情况下都会立即返回。 如果当前输出表示尚未完成,则drawImage将返回false 随着更多图像变得可用,加载图像的过程会通知指定的图像观察者。

        此方法始终使用图像的未缩放版本来渲染缩放的矩形,并在运行中执行所需的缩放。 它不会为此操作使用缓存的缩放版本的图像。 执行从源到目的地的图像缩放,使得源矩形的第一坐标被映射到目标矩形的第一坐标,并且第二源坐标被映射到第二目标坐标。 子图像根据需要进行缩放和翻转以保留这些映射。

        参数
        img - 要绘制的指定图像。 如果img为null,则此方法不执行任何img
        dx1 - 目标矩形的第一个角的 x坐标。
        dy1 - 目标矩形的第一个角的 y坐标。
        dx2 - 目标矩形的第二个角的 x坐标。
        dy2 - 目标矩形的第二个角的 y坐标。
        sx1 - 源矩形的第一个角的 x坐标。
        sy1 - 源矩形的第一个角的 y坐标。
        sx2 - 源矩形的第二个角的 x坐标。
        sy2 - 源矩形的第二个角的 y坐标。
        bgcolor - 要在图像的非不透明部分下绘制的背景颜色。
        observer - 缩放和转换更多图像时要通知的对象。
        结果
        false如果图像像素仍在变化; 否则为true
        从以下版本开始:
        1.1
        另请参见:
        ImageImageObserverImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)
      • dispose

        public abstract void dispose()
        处置此图形上下文并释放它正在使用的任何系统资源。 一个Graphics后不能使用对象dispose被调用。

        运行Java程序时,可以在短时间内创建大量的Graphics对象。 尽管垃圾收集器的最终化过程也处理相同的系统资源,但最好通过调用此方法手动释放相关资源,而不是依赖于可能长时间未完成的终结过程。

        当这些方法返回时,系统会自动释放作为组件paintupdate方法的参数提供的图形对象。 为了提高效率,只有在直接从组件或另一个Graphics对象创建对象时,程序员才应在完成使用Graphics对象时调用dispose

        另请参见:
        finalize()Component.paint(java.awt.Graphics)Component.update(java.awt.Graphics)Component.getGraphics()create()
      • finalize

        @Deprecated(since="9")public void finalize()
        Deprecated.
        The finalize method has been deprecated. Subclasses that override finalize in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overriding finalize method. When overriding the finalize method, its implementation must explicitly ensure that super.finalize() is invoked as described in Object.finalize(). See the specification for Object.finalize() for further information about migration options.
        一旦不再引用此图形上下文,就处置它。
        重写:
        finalize在课堂上 Object
        另请参见:
        dispose()
      • toString

        public String toString()
        返回 String表示此对象 Graphics对象的值。
        重写:
        toString ,课程 Object
        结果
        此图形上下文的字符串表示形式。
      • getClipRect

        @Deprecatedpublic Rectangle getClipRect()
        Deprecated.
        As of JDK version 1.1, replaced by getClipBounds().
        返回当前剪切区域的边界矩形。
        结果
        当前剪切区域的边界矩形,如果没有设置剪辑,则为 null
      • hitClip

        public boolean hitClip​(int x,                       int y,                       int width,                       int height)
        如果指定的矩形区域可能与当前剪切区域相交,则返回true。 指定矩形区域的坐标位于用户坐标空间中,并且相对于此图形上下文的坐标系原点。 此方法可以使用快速计算结果的算法,但即使指定的矩形区域不与剪切区域相交,有时也可能返回true。 因此,所采用的特定算法可以权衡速度的准确性,但是除非能够保证指定的矩形区域不与当前剪切区域相交,否则它将永远不会返回假。 此方法使用的剪切区域可以表示通过此图形上下文的剪辑方法指定的用户剪辑的交集,以及与设备或图像边界和窗口可见性相关联的剪辑。
        参数
        x - 要对剪辑进行测试的矩形的x坐标
        y - 要对剪辑进行测试的矩形的y坐标
        width - 要对剪辑进行测试的矩形的宽度
        height - 要针对剪辑测试的矩形的高度
        结果
        true如果指定的矩形与当前剪辑的边界相交; 否则为false
      • getClipBounds

        public Rectangle getClipBounds​(Rectangle r)
        返回当前剪切区域的边界矩形。 矩形中的坐标相对于此图形上下文的坐标系原点。 该方法与getClipBounds不同之处在于使用现有矩形而不是分配新矩形。 此方法引用用户剪辑,该剪辑独立于与设备边界和窗口可见性相关联的剪辑。 如果之前未设置剪辑,或者已使用setClip(null)清除剪辑,则此方法将返回指定的Rectangle
        参数
        r - 复制当前剪切区域的矩形。 此矩形中的任何当前值都将被覆盖。
        结果
        当前剪切区域的边界矩形。