Module  java.desktop
软件包  java.awt

Class Graphics

  • 已知直接子类:
    DebugGraphics , Graphics2D


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

    一个Graphics对象封装了Java支持的基本渲染操作所需的状态信息。 该状态信息包括以下属性:

    • 要绘制的Component对象。
    • 用于渲染和剪切坐标的翻译原点。
    • 当前剪辑。
    • 当前的颜色。
    • 当前的字体。
    • 当前的逻辑像素运算功能(XOR或Paint)。
    • 当前XOR交替颜色(见setXORMode(java.awt.Color) )。

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

    图形笔从其穿过的路径向下垂直向右。 这具有以下含义:

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

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

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

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

      构造方法  
      Modifier Constructor 描述
      protected Graphics​()
      构造一个新的 Graphics对象。
    • 方法摘要

      所有方法  接口方法  抽象方法  具体的方法  弃用的方法 
      Modifier and Type 方法 描述
      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)
      将组件的一个区域复制 dx和 dy指定的距离。
      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)
      绘制指定矩形的3-D高亮轮廓。
      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)
      绘制由 x和 y坐标数组定义的封闭多边形。
      void drawPolygon​(Polygon p)
      绘制由指定的 Polygon对象定义的多边形的轮廓。
      abstract void drawPolyline​(int[] xPoints, int[] yPoints, int nPoints)
      绘制由 x和 y坐标数组定义的连接线序列。
      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)
      绘制一个填充有当前颜色的3-D高亮矩形。
      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)
      填充由 x和 y坐标数组定义的封闭多边形。
      void fillPolygon​(Polygon p)
      使用图形上下文的当前颜色填充由指定的多边形对象定义的多边形。
      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方法已被弃用。 为了执行清理,覆盖finalize子类应被修改为使用替代的清理机制并删除覆盖的finalize方法。 当覆盖finalize方法时,其实现必须明确确保按照super.finalize()中所述调用super.finalize() 。 有关迁移选项的更多信息,请参阅Object.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)
      将图形上下文的原点转换为当前坐标系中的点( x , y )。
    • 构造方法详细信息

      • Graphics

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

        由于Graphics是一个抽象类,因此应用程序不能直接调用此构造函数。 图形上下文从其他图形上下文中获取,或者通过调用getGraphics上的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对象的起始点被转换为指定点( x , y )。 其剪辑区域由原始剪辑区域与指定矩形的交集确定。 参数都在原始Graphics对象的坐标系中解释。 新的图形上下文与原始图形相同,不同之处在于:
        • 新的图形上下文由( x , y )转换。 也就是说,点( 0 , 0在新的图形上下文)是一样的(X,Y)的原始图形上下文。
        • 除了继承自原始图形上下文的任何(翻译)裁剪矩形之外,新的图形上下文还有一个额外的剪切矩形。 新的剪辑矩形的原点是在( 0 , 0 ),以及由指定其大小width个height参数。
        参数
        x - x坐标。
        y - y坐标。
        width - 裁剪矩形的宽度。
        height - 剪裁矩形的高度。
        结果
        一个新的图形上下文。
        另请参见:
        translate(int, int) , clipRect(int, int, int, int)
      • translate

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

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

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

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

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

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

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

        参数
        c1 - XOR交替颜色
      • getFont

        public abstract Font getFont​()
        获取当前字体。
        结果
        这个图形上下文的当前字体。
        另请参见:
        Font , setFont(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)
        以dx和dy指定的距离复制组件的一个dy 。 从x和y指定的点y ,此方法x和y复制。 要向左或向上复制组件的区域,请指定一个负值为dx或dy 。 如果源矩形的一部分位于组件边界之外,或被其他窗口或组件遮挡,则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)
        填写指定的矩形。 矩形的左右边缘为x和x + width - 1 。 顶部和底部边缘为y和y + 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)
        绘制指定矩形的轮廓。 矩形的左边和右边是x和x + width 。 顶部和底部边缘为y和y + 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)
        使用此图形上下文的当前颜色绘制一个概略的圆角矩形。 矩形的左右边缘分别为x和x + width 。 矩形的顶部和底部边缘为y和y + 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)
        使用当前颜色填充指定的圆角矩形。 矩形的左右边缘分别为x和x + width - 1 。 矩形的顶部和底部边缘为y和y + 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)
        绘制指定矩形的3-D高亮轮廓。 矩形的边缘被突出显示,使得它们看起来是从左上角倾斜并点亮。

        用于突出显示效果的颜色是根据当前颜色确定的。 最终的矩形覆盖了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)
        绘制一个填充有当前颜色的3-D高亮矩形。 矩形的边缘将被突出显示,使其看起来好像边缘是从左上角倾斜并点亮。 用于突出显示效果的颜色将根据当前颜色确定。
        参数
        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)
        绘制椭圆形轮廓。 其结果是由指定的矩形内配合在一个圆或椭圆x , y , width ,和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点钟位置。 正值表示逆时针旋转,而负值表示顺时针旋转。

        圆弧的中心是矩形的中心,原点是( x , y ),其大小由width和height参数指定。

        所得到的弧面覆盖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点钟位置。 正值表示逆时针旋转,而负值表示顺时针旋转。

        弧的中心是矩形的中心,原点是( x , y ),其大小由width和height参数指定。

        所产生的弧线覆盖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)
        绘制由x和y坐标数组定义的连接线序列。 每对( x , y )坐标定义一个点。 如果第一点与最后一点不同,则图形不会关闭。
        参数
        xPoints - 一个 x点数组
        yPoints - 一个 y点数组
        nPoints - 总分数
        从以下版本开始:
        1.1
        另请参见:
        drawPolygon(int[], int[], int)
      • drawPolygon

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

        此方法绘制由定义的多边形nPoint线段,其中第一nPoint - 1线段是线段从(xPoints[i - 1], yPoints[i - 1])到(xPoints[i], yPoints[i]) ,为1‰‰¤I A‰¤ 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)
        填充由x和y坐标数组定义的封闭多边形。

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

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

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

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

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

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

        public void drawChars​(char[] data,
                              int offset,
                              int length,
                              int x,
                              int y)
        绘制由指定的字符数组给出的文本,使用此图形上下文的当前字体和颜色。 第一个字符的基线位于该图形上下文的坐标系中的位置( x , y )。
        参数
        data - 要绘制的字符数组
        offset - 数据中的起始偏移量
        length - 要绘制的字符数
        x - 文本基线的 x坐标
        y - 文本基线的 y坐标
        异常
        NullPointerException - 如果 data是 null 。
        IndexOutOfBoundsException - 如果 offset或 length小于零,或 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)
        绘制由指定字节数组给出的文本,使用此图形上下文的当前字体和颜色。 第一个字符的基线位于该图形上下文的坐标系中的位置( x , y )。

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

        参数
        data - 要绘制的数据
        offset - 数据中的起始偏移量
        length - 绘制的字节数
        x - 文本基线的 x坐标
        y - 文本基线的 y坐标
        异常
        NullPointerException - 如果 data是 null 。
        IndexOutOfBoundsException - 如果 offset或 length小于零,或 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)
        绘制当前可用的指定图像的大小。 该图像在其图形上下文的坐标空间中的左上角( x , y )处绘制。 图像中的透明像素不会影响已经存在的任何像素。

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

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

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

        public abstract boolean drawImage​(Image img,
                                          int x,
                                          int y,
                                          Color bgcolor,
                                          ImageObserver observer)
        绘制当前可用的指定图像的大小。 该图像在其图形上下文的坐标空间中的左上角( x , y )处绘制。 透明像素以指定的背景颜色绘制。

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

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

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

        参数
        img - 要绘制的指定图像。 如果img为空,则此方法不起作用。
        x - x坐标。
        y - y坐标。
        bgcolor - 在图像的非不透明部分下绘制的背景颜色。
        observer - 要转换更多图像时要通知的对象。
        结果
        false如果图像像素仍在变化; 否则为true 。
        另请参见:
        Image , ImageObserver , ImageObserver.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为空,此方法不起作用。
        x - x坐标。
        y - y坐标。
        width - 矩形的宽度。
        height - 矩形的高度。
        bgcolor - 在图像的非不透明部分下绘制的背景颜色。
        observer - 要转换更多图像时要通知的对象。
        结果
        false如果图像像素仍在变化; 否则为true 。
        另请参见:
        Image , ImageObserver , ImageObserver.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为空,则此方法不起作用。
        dx1 - 目标矩形的第一个角的 x坐标。
        dy1 - 目标矩形的第一个角的 y坐标。
        dx2 - 目标矩形的第二个角的 x坐标。
        dy2 - 目标矩形的第二个角的 y坐标。
        sx1 - 源矩形的第一个角的 x坐标。
        sy1 - 源矩形的第一个角的 y坐标。
        sx2 - 源矩形的第二个角的 x坐标。
        sy2 - 源矩形的第二个角的 y坐标。
        observer - 通过缩放和转换更多的图像来通知对象。
        结果
        false如果图像像素仍在改变; true否则。
        从以下版本开始:
        1.1
        另请参见:
        Image , ImageObserver , ImageObserver.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为空,则此方法不起作用。
        dx1 - 目标矩形的第一个角的 x坐标。
        dy1 - 目标矩形的第一个角的 y坐标。
        dx2 - 目标矩形的第二个角的 x坐标。
        dy2 - 目标矩形的第二个角的 y坐标。
        sx1 - 源矩形的第一个角的 x坐标。
        sy1 - 源矩形的第一个角的 y坐标。
        sx2 - 源矩形的第二个角的 x坐标。
        sy2 - 源矩形的第二个角的 y坐标。
        bgcolor - 在图像的非不透明部分下绘制的背景颜色。
        observer - 通过缩放和转换更多的图像来通知对象。
        结果
        false如果图像像素仍在变化; true否则。
        从以下版本开始:
        1.1
        另请参见:
        Image , ImageObserver , ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)
      • dispose

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

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

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

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

        @Deprecated(since="9")
        public void finalize​()
        已过时。 finalize方法已被弃用。 为了执行清理,覆盖finalize子类应被修改为使用替代清理机制,并删除覆盖的finalize方法。 当覆盖finalize方法时,其实现必须明确地确保按照super.finalize()中所述调用super.finalize() 。 有关迁移选项的更多信息,请参阅Object.finalize()的规范。
        一旦不再引用此图形上下文,就会处理这些图形上下文。
        重写:
        finalize在 Object
        另请参见:
        dispose()
      • toString

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

        @Deprecated
        public Rectangle getClipRect​()
        已过时。 从JDK 1.1版开始,由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 - 当前裁剪区域被复制到的矩形。 此矩形中的任何当前值都将被覆盖。
        结果
        当前剪辑区域的边界矩形。