DebugGraphics (Java SE 26 & JDK 26)
Description: declaration: module: java.desktop, package: javax.swing, class: DebugGraphics
Keywords: javax.swing.DebugGraphics class

# Class DebugGraphics

java.lang.Object
java.awt.Graphics
javax.swing.DebugGraphics

public class DebugGraphics extends Graphics
Graphics subclass supporting graphics debugging. Overrides most methods from Graphics. DebugGraphics objects are rarely created by hand. They are most frequently created automatically when a JComponent's debugGraphicsOptions are changed using the setDebugGraphicsOptions() method.

NOTE: You must turn off double buffering to use DebugGraphics: RepaintManager repaintManager = RepaintManager.currentManager(component); repaintManager.setDoubleBufferingEnabled(false);

Since:
  1.2
See Also:
  - `JComponent.setDebugGraphicsOptions(int)`
  - `RepaintManager.currentManager(Component)`
  - `RepaintManager.setDoubleBufferingEnabled(boolean)`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `BUFFERED_OPTION`
  Show buffered operations in a separate `Frame`.
  `static final int`
  `FLASH_OPTION`
  Flash graphics operations.
  `static final int`
  `LOG_OPTION`
  Log graphics operations.
  `static final int`
  `NONE_OPTION`
  Don't debug graphics operations.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DebugGraphics()`
  Constructs a new debug graphics context that supports slowed down drawing.
  `DebugGraphics(Graphics graphics)`
  Constructs a debug graphics context from an existing graphics context that supports slowed down drawing.
  `DebugGraphics(Graphics graphics, JComponent component)`
  Constructs a debug graphics context from an existing graphics context that slows down drawing for the specified component.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `clearRect(int x, int y, int width, int height)`
  Overrides `Graphics.clearRect`.
  `void`
  `clipRect(int x, int y, int width, int height)`
  Overrides `Graphics.clipRect`.
  `void`
  `copyArea(int x, int y, int width, int height, int destX, int destY)`
  Overrides `Graphics.copyArea`.
  `Graphics`
  `create()`
  Overrides `Graphics.create` to return a DebugGraphics object.
  `Graphics`
  `create(int x, int y, int width, int height)`
  Overrides `Graphics.create` to return a DebugGraphics object.
  `void`
  `dispose()`
  Overrides `Graphics.dispose`.
  `void`
  `draw3DRect(int x, int y, int width, int height, boolean raised)`
  Overrides `Graphics.draw3DRect`.
  `void`
  `drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)`
  Overrides `Graphics.drawArc`.
  `void`
  `drawBytes(byte[] data, int offset, int length, int x, int y)`
  Overrides `Graphics.drawBytes`.
  `void`
  `drawChars(char[] data, int offset, int length, int x, int y)`
  Overrides `Graphics.drawChars`.
  `boolean`
  `drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)`
  Overrides `Graphics.drawImage`.
  `boolean`
  `drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)`
  Overrides `Graphics.drawImage`.
  `boolean`
  `drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)`
  Overrides `Graphics.drawImage`.
  `boolean`
  `drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)`
  Overrides `Graphics.drawImage`.
  `boolean`
  `drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)`
  Overrides `Graphics.drawImage`.
  `boolean`
  `drawImage(Image img, int x, int y, ImageObserver observer)`
  Overrides `Graphics.drawImage`.
  `void`
  `drawLine(int x1, int y1, int x2, int y2)`
  Overrides `Graphics.drawLine`.
  `void`
  `drawOval(int x, int y, int width, int height)`
  Overrides `Graphics.drawOval`.
  `void`
  `drawPolygon(int[] xPoints, int[] yPoints, int nPoints)`
  Overrides `Graphics.drawPolygon`.
  `void`
  `drawPolyline(int[] xPoints, int[] yPoints, int nPoints)`
  Overrides `Graphics.drawPolyline`.
  `void`
  `drawRect(int x, int y, int width, int height)`
  Overrides `Graphics.drawRect`.
  `void`
  `drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)`
  Overrides `Graphics.drawRoundRect`.
  `void`
  `drawString(String aString, int x, int y)`
  Overrides `Graphics.drawString`.
  `void`
  `drawString(AttributedCharacterIterator iterator, int x, int y)`
  Overrides `Graphics.drawString`.
  `void`
  `fill3DRect(int x, int y, int width, int height, boolean raised)`
  Overrides `Graphics.fill3DRect`.
  `void`
  `fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)`
  Overrides `Graphics.fillArc`.
  `void`
  `fillOval(int x, int y, int width, int height)`
  Overrides `Graphics.fillOval`.
  `void`
  `fillPolygon(int[] xPoints, int[] yPoints, int nPoints)`
  Overrides `Graphics.fillPolygon`.
  `void`
  `fillRect(int x, int y, int width, int height)`
  Overrides `Graphics.fillRect`.
  `void`
  `fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)`
  Overrides `Graphics.fillRoundRect`.
  `static Color`
  `flashColor()`
  Returns the Color used to flash drawing operations.
  `static int`
  `flashCount()`
  Returns the number of times that drawing operations will flash.
  `static int`
  `flashTime()`
  Returns the time delay of drawing operation flashing.
  `Shape`
  `getClip()`
  Overrides `Graphics.getClip`.
  `Rectangle`
  `getClipBounds()`
  Overrides `Graphics.getClipBounds`.
  `Color`
  `getColor()`
  Returns the Color used for text drawing operations.
  `int`
  `getDebugOptions()`
  Returns the current debugging options for this DebugGraphics.
  `Font`
  `getFont()`
  Returns the Font used for text drawing operations.
  `FontMetrics`
  `getFontMetrics()`
  Overrides `Graphics.getFontMetrics`.
  `FontMetrics`
  `getFontMetrics(Font f)`
  Overrides `Graphics.getFontMetrics`.
  `boolean`
  `isDrawingBuffer()`
  Returns the drawingBuffer value.
  `static PrintStream`
  `logStream()`
  Returns the stream to which the DebugGraphics logs drawing operations.
  `void`
  `setClip(int x, int y, int width, int height)`
  Overrides `Graphics.setClip`.
  `void`
  `setClip(Shape clip)`
  Overrides `Graphics.setClip`.
  `void`
  `setColor(Color aColor)`
  Sets the color to be used for drawing and filling lines and shapes.
  `void`
  `setDebugOptions(int options)`
  Enables/disables diagnostic information about every graphics operation.
  `static void`
  `setFlashColor(Color flashColor)`
  Sets the Color used to flash drawing operations.
  `static void`
  `setFlashCount(int flashCount)`
  Sets the number of times that drawing operations will flash.
  `static void`
  `setFlashTime(int flashTime)`
  Sets the time delay of drawing operation flashing.
  `void`
  `setFont(Font aFont)`
  Sets the Font used for text drawing operations.
  `static void`
  `setLogStream(PrintStream stream)`
  Sets the stream to which the DebugGraphics logs drawing operations.
  `void`
  `setPaintMode()`
  Overrides `Graphics.setPaintMode`.
  `void`
  `setXORMode(Color aColor)`
  Overrides `Graphics.setXORMode`.
  `void`
  `translate(int x, int y)`
  Overrides `Graphics.translate`.

  ### Methods declared in class Graphics

  `drawPolygon, fillPolygon, finalize, getClipBounds, getClipRect, hitClip, toString`
  Modifier and Type
  Method
  Description
  `void`
  `drawPolygon(Polygon p)`
  Draws the outline of a polygon defined by the specified `Polygon` object.
  `void`
  `fillPolygon(Polygon p)`
  Fills the polygon defined by the specified Polygon object with the graphics context's current color.
  `void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization has been deprecated for removal.
  `Rectangle`
  `getClipBounds(Rectangle r)`
  Returns the bounding rectangle of the current clipping area.
  `Rectangle`
  `getClipRect()`
  Deprecated.
  As of JDK version 1.1, replaced by `getClipBounds()`.
  `boolean`
  `hitClip(int x, int y, int width, int height)`
  Returns true if the specified rectangular area might intersect the current clipping area.
  `String`
  `toString()`
  Returns a `String` object representing this `Graphics` object's value.

  ### Methods declared in class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Field Details

  - ### LOG_OPTION

    public static final int LOG_OPTION
    Log graphics operations.
    See Also:
      - Constant Field Values

  - ### FLASH_OPTION

    public static final int FLASH_OPTION
    Flash graphics operations.
    See Also:
      - Constant Field Values

  - ### BUFFERED_OPTION

    public static final int BUFFERED_OPTION
    Show buffered operations in a separate `Frame`.
    See Also:
      - Constant Field Values

  - ### NONE_OPTION

    public static final int NONE_OPTION
    Don't debug graphics operations.
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### DebugGraphics

    public DebugGraphics()
    Constructs a new debug graphics context that supports slowed down drawing.

    NOTE: This constructor should not be called by applications, it is for internal use only. When called directly it will create an un-usable instance.

  - ### DebugGraphics

    public DebugGraphics(Graphics graphics, JComponent component)
    Constructs a debug graphics context from an existing graphics context that slows down drawing for the specified component.
    Parameters:
      `graphics` - the Graphics context to slow down
      `component` - the JComponent to draw slowly

  - ### DebugGraphics

    public DebugGraphics(Graphics graphics)
    Constructs a debug graphics context from an existing graphics context that supports slowed down drawing.
    Parameters:
      `graphics` - the Graphics context to slow down

- ## Method Details

  - ### create

    public Graphics create()
    Overrides `Graphics.create` to return a DebugGraphics object.
    Specified by:
      `create` in class `Graphics`
    Returns:
      a new graphics context that is a copy of this graphics context.

  - ### create

    public Graphics create(int x, int y, int width, int height)
    Overrides `Graphics.create` to return a DebugGraphics object.
    Overrides:
      `create` in class `Graphics`
    Parameters:
      `x` - the x coordinate.
      `y` - the y coordinate.
      `width` - the width of the clipping rectangle.
      `height` - the height of the clipping rectangle.
    Returns:
      a new graphics context.
    See Also:
      - `Graphics.translate(int, int)`
      - `Graphics.clipRect(int, int, int, int)`

  - ### setFlashColor

    public static void setFlashColor(Color flashColor)
    Sets the Color used to flash drawing operations.
    Parameters:
      `flashColor` - the Color used to flash drawing operations

  - ### flashColor

    public static Color flashColor()
    Returns the Color used to flash drawing operations.
    Returns:
      the Color used to flash drawing operations
    See Also:
      - `setFlashColor(Color)`

  - ### setFlashTime

    public static void setFlashTime(int flashTime)
    Sets the time delay of drawing operation flashing.
    Parameters:
      `flashTime` - the time delay of drawing operation flashing

  - ### flashTime

    public static int flashTime()
    Returns the time delay of drawing operation flashing.
    Returns:
      the time delay of drawing operation flashing
    See Also:
      - `setFlashTime(int)`

  - ### setFlashCount

    public static void setFlashCount(int flashCount)
    Sets the number of times that drawing operations will flash.
    Parameters:
      `flashCount` - number of times that drawing operations will flash

  - ### flashCount

    public static int flashCount()
    Returns the number of times that drawing operations will flash.
    Returns:
      the number of times that drawing operations will flash
    See Also:
      - `setFlashCount(int)`

  - ### setLogStream

    public static void setLogStream(PrintStream stream)
    Sets the stream to which the DebugGraphics logs drawing operations.
    Parameters:
      `stream` - the stream to which the DebugGraphics logs drawing operations

  - ### logStream

    public static PrintStream logStream()
    Returns the stream to which the DebugGraphics logs drawing operations.
    Returns:
      the stream to which the DebugGraphics logs drawing operations
    See Also:
      - `setLogStream(PrintStream)`

  - ### setFont

    public void setFont(Font aFont)
    Sets the Font used for text drawing operations.
    Specified by:
      `setFont` in class `Graphics`
    Parameters:
      `aFont` - the font.
    See Also:
      - `Graphics.getFont()`
      - `Graphics.drawString(java.lang.String, int, int)`
      - `Graphics.drawBytes(byte[], int, int, int, int)`
      - `Graphics.drawChars(char[], int, int, int, int)`

  - ### getFont

    public Font getFont()
    Returns the Font used for text drawing operations.
    Specified by:
      `getFont` in class `Graphics`
    Returns:
      this graphics context's current font.
    See Also:
      - `setFont(Font)`

  - ### setColor

    public void setColor(Color aColor)
    Sets the color to be used for drawing and filling lines and shapes.
    Specified by:
      `setColor` in class `Graphics`
    Parameters:
      `aColor` - the new rendering color.
    See Also:
      - `Color`
      - `Graphics.getColor()`

  - ### getColor

    public Color getColor()
    Returns the Color used for text drawing operations.
    Specified by:
      `getColor` in class `Graphics`
    Returns:
      this graphics context's current color.
    See Also:
      - `setColor(Color)`

  - ### getFontMetrics

    public FontMetrics getFontMetrics()
    Overrides `Graphics.getFontMetrics`.
    Overrides:
      `getFontMetrics` in class `Graphics`
    Returns:
      the font metrics of this graphics context's current font.
    See Also:
      - `Graphics.getFont()`
      - `FontMetrics`
      - `Graphics.getFontMetrics(Font)`

  - ### getFontMetrics

    public FontMetrics getFontMetrics(Font f)
    Overrides `Graphics.getFontMetrics`.
    Specified by:
      `getFontMetrics` in class `Graphics`
    Parameters:
      `f` - the specified font
    Returns:
      the font metrics for the specified font.
    See Also:
      - `Graphics.getFont()`
      - `FontMetrics`
      - `Graphics.getFontMetrics()`

  - ### translate

    public void translate(int x, int y)
    Overrides `Graphics.translate`.
    Specified by:
      `translate` in class `Graphics`
    Parameters:
      `x` - the x coordinate.
      `y` - the y coordinate.

  - ### setPaintMode

    public void setPaintMode()
    Overrides `Graphics.setPaintMode`.
    Specified by:
      `setPaintMode` in class `Graphics`

  - ### setXORMode

    public void setXORMode(Color aColor)
    Overrides `Graphics.setXORMode`.
    Specified by:
      `setXORMode` in class `Graphics`
    Parameters:
      `aColor` - the XOR alternation color

  - ### getClipBounds

    public Rectangle getClipBounds()
    Overrides `Graphics.getClipBounds`.
    Specified by:
      `getClipBounds` in class `Graphics`
    Returns:
      the bounding rectangle of the current clipping area, or `null` if no clip is set.
    See Also:
      - `Graphics.getClip()`
      - `Graphics.clipRect(int, int, int, int)`
      - `Graphics.setClip(int, int, int, int)`
      - `Graphics.setClip(Shape)`

  - ### clipRect

    public void clipRect(int x, int y, int width, int height)
    Overrides `Graphics.clipRect`.
    Specified by:
      `clipRect` in class `Graphics`
    Parameters:
      `x` - the x coordinate of the rectangle to intersect the clip with
      `y` - the y coordinate of the rectangle to intersect the clip with
      `width` - the width of the rectangle to intersect the clip with
      `height` - the height of the rectangle to intersect the clip with
    See Also:
      - `Graphics.setClip(int, int, int, int)`
      - `Graphics.setClip(Shape)`

  - ### setClip

    public void setClip(int x, int y, int width, int height)
    Overrides `Graphics.setClip`.
    Specified by:
      `setClip` in class `Graphics`
    Parameters:
      `x` - the x coordinate of the new clip rectangle.
      `y` - the y coordinate of the new clip rectangle.
      `width` - the width of the new clip rectangle.
      `height` - the height of the new clip rectangle.
    See Also:
      - `Graphics.clipRect(int, int, int, int)`
      - `Graphics.setClip(Shape)`
      - `Graphics.getClip()`

  - ### getClip

    public Shape getClip()
    Overrides `Graphics.getClip`.
    Specified by:
      `getClip` in class `Graphics`
    Returns:
      a `Shape` object representing the current clipping area, or `null` if no clip is set.
    See Also:
      - `Graphics.getClipBounds()`
      - `Graphics.clipRect(int, int, int, int)`
      - `Graphics.setClip(int, int, int, int)`
      - `Graphics.setClip(Shape)`

  - ### setClip

    public void setClip(Shape clip)
    Overrides `Graphics.setClip`.
    Specified by:
      `setClip` in class `Graphics`
    Parameters:
      `clip` - the `Shape` to use to set the clip. Passing `null` clears the current `clip`.
    See Also:
      - `Graphics.getClip()`
      - `Graphics.clipRect(int, int, int, int)`
      - `Graphics.setClip(int, int, int, int)`

  - ### drawRect

    public void drawRect(int x, int y, int width, int height)
    Overrides `Graphics.drawRect`.
    Overrides:
      `drawRect` in class `Graphics`
    Parameters:
      `x` - the x coordinate of the rectangle to be drawn.
      `y` - the y coordinate of the rectangle to be drawn.
      `width` - the width of the rectangle to be drawn.
      `height` - the height of the rectangle to be drawn.
    See Also:
      - `Graphics.fillRect(int, int, int, int)`
      - `Graphics.clearRect(int, int, int, int)`

  - ### fillRect

    public void fillRect(int x, int y, int width, int height)
    Overrides `Graphics.fillRect`.
    Specified by:
      `fillRect` in class `Graphics`
    Parameters:
      `x` - the x coordinate of the rectangle to be filled.
      `y` - the y coordinate of the rectangle to be filled.
      `width` - the width of the rectangle to be filled.
      `height` - the height of the rectangle to be filled.
    See Also:
      - `Graphics.clearRect(int, int, int, int)`
      - `Graphics.drawRect(int, int, int, int)`

  - ### clearRect

    public void clearRect(int x, int y, int width, int height)
    Overrides `Graphics.clearRect`.
    Specified by:
      `clearRect` in class `Graphics`
    Parameters:
      `x` - the x coordinate of the rectangle to clear.
      `y` - the y coordinate of the rectangle to clear.
      `width` - the width of the rectangle to clear.
      `height` - the height of the rectangle to clear.
    See Also:
      - `Graphics.fillRect(int, int, int, int)`
      - `Graphics.drawRect(int, int, int, int)`
      - `Graphics.setColor(java.awt.Color)`
      - `Graphics.setPaintMode()`
      - `Graphics.setXORMode(java.awt.Color)`

  - ### drawRoundRect

    public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
    Overrides `Graphics.drawRoundRect`.
    Specified by:
      `drawRoundRect` in class `Graphics`
    Parameters:
      `x` - the x coordinate of the rectangle to be drawn.
      `y` - the y coordinate of the rectangle to be drawn.
      `width` - the width of the rectangle to be drawn.
      `height` - the height of the rectangle to be drawn.
      `arcWidth` - the horizontal diameter of the arc at the four corners.
      `arcHeight` - the vertical diameter of the arc at the four corners.
    See Also:
      - `Graphics.fillRoundRect(int, int, int, int, int, int)`

  - ### fillRoundRect

    public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
    Overrides `Graphics.fillRoundRect`.
    Specified by:
      `fillRoundRect` in class `Graphics`
    Parameters:
      `x` - the x coordinate of the rectangle to be filled.
      `y` - the y coordinate of the rectangle to be filled.
      `width` - the width of the rectangle to be filled.
      `height` - the height of the rectangle to be filled.
      `arcWidth` - the horizontal diameter of the arc at the four corners.
      `arcHeight` - the vertical diameter of the arc at the four corners.
    See Also:
      - `Graphics.drawRoundRect(int, int, int, int, int, int)`

  - ### drawLine

    public void drawLine(int x1, int y1, int x2, int y2)
    Overrides `Graphics.drawLine`.
    Specified by:
      `drawLine` in class `Graphics`
    Parameters:
      `x1` - the first point's x coordinate.
      `y1` - the first point's y coordinate.
      `x2` - the second point's x coordinate.
      `y2` - the second point's y coordinate.

  - ### draw3DRect

    public void draw3DRect(int x, int y, int width, int height, boolean raised)
    Overrides `Graphics.draw3DRect`.
    Overrides:
      `draw3DRect` in class `Graphics`
    Parameters:
      `x` - the x coordinate of the rectangle to be drawn.
      `y` - the y coordinate of the rectangle to be drawn.
      `width` - the width of the rectangle to be drawn.
      `height` - the height of the rectangle to be drawn.
      `raised` - a boolean that determines whether the rectangle appears to be raised above the surface or sunk into the surface.
    See Also:
      - `Graphics.fill3DRect(int, int, int, int, boolean)`

  - ### fill3DRect

    public void fill3DRect(int x, int y, int width, int height, boolean raised)
    Overrides `Graphics.fill3DRect`.
    Overrides:
      `fill3DRect` in class `Graphics`
    Parameters:
      `x` - the x coordinate of the rectangle to be filled.
      `y` - the y coordinate of the rectangle to be filled.
      `width` - the width of the rectangle to be filled.
      `height` - the height of the rectangle to be filled.
      `raised` - a boolean value that determines whether the rectangle appears to be raised above the surface or etched into the surface.
    See Also:
      - `Graphics.draw3DRect(int, int, int, int, boolean)`

  - ### drawOval

    public void drawOval(int x, int y, int width, int height)
    Overrides `Graphics.drawOval`.
    Specified by:
      `drawOval` in class `Graphics`
    Parameters:
      `x` - the x coordinate of the upper left corner of the oval to be drawn.
      `y` - the y coordinate of the upper left corner of the oval to be drawn.
      `width` - the width of the oval to be drawn.
      `height` - the height of the oval to be drawn.
    See Also:
      - `Graphics.fillOval(int, int, int, int)`

  - ### fillOval

    public void fillOval(int x, int y, int width, int height)
    Overrides `Graphics.fillOval`.
    Specified by:
      `fillOval` in class `Graphics`
    Parameters:
      `x` - the x coordinate of the upper left corner of the oval to be filled.
      `y` - the y coordinate of the upper left corner of the oval to be filled.
      `width` - the width of the oval to be filled.
      `height` - the height of the oval to be filled.
    See Also:
      - `Graphics.drawOval(int, int, int, int)`

  - ### drawArc

    public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
    Overrides `Graphics.drawArc`.
    Specified by:
      `drawArc` in class `Graphics`
    Parameters:
      `x` - the x coordinate of the upper-left corner of the arc to be drawn.
      `y` - the y coordinate of the upper-left corner of the arc to be drawn.
      `width` - the width of the arc to be drawn.
      `height` - the height of the arc to be drawn.
      `startAngle` - the beginning angle.
      `arcAngle` - the angular extent of the arc, relative to the start angle.
    See Also:
      - `Graphics.fillArc(int, int, int, int, int, int)`

  - ### fillArc

    public void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
    Overrides `Graphics.fillArc`.
    Specified by:
      `fillArc` in class `Graphics`
    Parameters:
      `x` - the x coordinate of the upper-left corner of the arc to be filled.
      `y` - the y coordinate of the upper-left corner of the arc to be filled.
      `width` - the width of the arc to be filled.
      `height` - the height of the arc to be filled.
      `startAngle` - the beginning angle.
      `arcAngle` - the angular extent of the arc, relative to the start angle.
    See Also:
      - `Graphics.drawArc(int, int, int, int, int, int)`

  - ### drawPolyline

    public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
    Overrides `Graphics.drawPolyline`.
    Specified by:
      `drawPolyline` in class `Graphics`
    Parameters:
      `xPoints` - an array of x points
      `yPoints` - an array of y points
      `nPoints` - the total number of points
    See Also:
      - `Graphics.drawPolygon(int[], int[], int)`

  - ### drawPolygon

    public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
    Overrides `Graphics.drawPolygon`.
    Specified by:
      `drawPolygon` in class `Graphics`
    Parameters:
      `xPoints` - an array of `x` coordinates.
      `yPoints` - an array of `y` coordinates.
      `nPoints` - the total number of points.
    See Also:
      - `Graphics.fillPolygon(int[], int[], int)`
      - `Graphics.drawPolyline(int[], int[], int)`

  - ### fillPolygon

    public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
    Overrides `Graphics.fillPolygon`.
    Specified by:
      `fillPolygon` in class `Graphics`
    Parameters:
      `xPoints` - an array of `x` coordinates.
      `yPoints` - an array of `y` coordinates.
      `nPoints` - the total number of points.
    See Also:
      - `Graphics.drawPolygon(int[], int[], int)`

  - ### drawString

    public void drawString(String aString, int x, int y)
    Overrides `Graphics.drawString`.
    Specified by:
      `drawString` in class `Graphics`
    Parameters:
      `aString` - the string to be drawn.
      `x` - the x coordinate.
      `y` - the y coordinate.
    See Also:
      - `Graphics.drawBytes(byte[], int, int, int, int)`
      - `Graphics.drawChars(char[], int, int, int, int)`

  - ### drawString

    public void drawString(AttributedCharacterIterator iterator, int x, int y)
    Overrides `Graphics.drawString`.
    Specified by:
      `drawString` in class `Graphics`
    Parameters:
      `iterator` - the iterator whose text is to be drawn
      `x` - the x coordinate.
      `y` - the y coordinate.
    See Also:
      - `Graphics.drawBytes(byte[], int, int, int, int)`
      - `Graphics.drawChars(char[], int, int, int, int)`

  - ### drawBytes

    public void drawBytes(byte[] data, int offset, int length, int x, int y)
    Overrides `Graphics.drawBytes`.
    Overrides:
      `drawBytes` in class `Graphics`
    Parameters:
      `data` - the data to be drawn
      `offset` - the start offset in the data
      `length` - the number of bytes that are drawn
      `x` - the x coordinate of the baseline of the text
      `y` - the y coordinate of the baseline of the text
    See Also:
      - `Graphics.drawChars(char[], int, int, int, int)`
      - `Graphics.drawString(String, int, int)`

  - ### drawChars

    public void drawChars(char[] data, int offset, int length, int x, int y)
    Overrides `Graphics.drawChars`.
    Overrides:
      `drawChars` in class `Graphics`
    Parameters:
      `data` - the array of characters to be drawn
      `offset` - the start offset in the data
      `length` - the number of characters to be drawn
      `x` - the x coordinate of the baseline of the text
      `y` - the y coordinate of the baseline of the text
    See Also:
      - `Graphics.drawBytes(byte[], int, int, int, int)`
      - `Graphics.drawString(String, int, int)`

  - ### drawImage

    public boolean drawImage(Image img, int x, int y, ImageObserver observer)
    Overrides `Graphics.drawImage`.
    Specified by:
      `drawImage` in class `Graphics`
    Parameters:
      `img` - the specified image to be drawn. This method does nothing if `img` is null.
      `x` - the x coordinate.
      `y` - the y coordinate.
      `observer` - object to be notified as more of the image is converted.
    Returns:
      `false` if the image pixels are still changing; `true` otherwise.
    See Also:
      - `Image`
      - `ImageObserver`
      - `ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)`

  - ### drawImage

    public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
    Overrides `Graphics.drawImage`.
    Specified by:
      `drawImage` in class `Graphics`
    Parameters:
      `img` - the specified image to be drawn. This method does nothing if `img` is null.
      `x` - the x coordinate.
      `y` - the y coordinate.
      `width` - the width of the rectangle.
      `height` - the height of the rectangle.
      `observer` - object to be notified as more of the image is converted.
    Returns:
      `false` if the image pixels are still changing; `true` otherwise.
    See Also:
      - `Image`
      - `ImageObserver`
      - `ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)`

  - ### drawImage

    public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
    Overrides `Graphics.drawImage`.
    Specified by:
      `drawImage` in class `Graphics`
    Parameters:
      `img` - the specified image to be drawn. This method does nothing if `img` is null.
      `x` - the x coordinate.
      `y` - the y coordinate.
      `bgcolor` - the background color to paint under the non-opaque portions of the image.
      `observer` - object to be notified as more of the image is converted.
    Returns:
      `false` if the image pixels are still changing; `true` otherwise.
    See Also:
      - `Image`
      - `ImageObserver`
      - `ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)`

  - ### drawImage

    public boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)
    Overrides `Graphics.drawImage`.
    Specified by:
      `drawImage` in class `Graphics`
    Parameters:
      `img` - the specified image to be drawn. This method does nothing if `img` is null.
      `x` - the x coordinate.
      `y` - the y coordinate.
      `width` - the width of the rectangle.
      `height` - the height of the rectangle.
      `bgcolor` - the background color to paint under the non-opaque portions of the image.
      `observer` - object to be notified as more of the image is converted.
    Returns:
      `false` if the image pixels are still changing; `true` otherwise.
    See Also:
      - `Image`
      - `ImageObserver`
      - `ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)`

  - ### drawImage

    public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
    Overrides `Graphics.drawImage`.
    Specified by:
      `drawImage` in class `Graphics`
    Parameters:
      `img` - the specified image to be drawn. This method does nothing if `img` is null.
      `dx1` - the x coordinate of the first corner of the destination rectangle.
      `dy1` - the y coordinate of the first corner of the destination rectangle.
      `dx2` - the x coordinate of the second corner of the destination rectangle.
      `dy2` - the y coordinate of the second corner of the destination rectangle.
      `sx1` - the x coordinate of the first corner of the source rectangle.
      `sy1` - the y coordinate of the first corner of the source rectangle.
      `sx2` - the x coordinate of the second corner of the source rectangle.
      `sy2` - the y coordinate of the second corner of the source rectangle.
      `observer` - object to be notified as more of the image is scaled and converted.
    Returns:
      `false` if the image pixels are still changing; `true` otherwise.
    See Also:
      - `Image`
      - `ImageObserver`
      - `ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)`

  - ### drawImage

    public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)
    Overrides `Graphics.drawImage`.
    Specified by:
      `drawImage` in class `Graphics`
    Parameters:
      `img` - the specified image to be drawn. This method does nothing if `img` is null.
      `dx1` - the x coordinate of the first corner of the destination rectangle.
      `dy1` - the y coordinate of the first corner of the destination rectangle.
      `dx2` - the x coordinate of the second corner of the destination rectangle.
      `dy2` - the y coordinate of the second corner of the destination rectangle.
      `sx1` - the x coordinate of the first corner of the source rectangle.
      `sy1` - the y coordinate of the first corner of the source rectangle.
      `sx2` - the x coordinate of the second corner of the source rectangle.
      `sy2` - the y coordinate of the second corner of the source rectangle.
      `bgcolor` - the background color to paint under the non-opaque portions of the image.
      `observer` - object to be notified as more of the image is scaled and converted.
    Returns:
      `false` if the image pixels are still changing; `true` otherwise.
    See Also:
      - `Image`
      - `ImageObserver`
      - `ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)`

  - ### copyArea

    public void copyArea(int x, int y, int width, int height, int destX, int destY)
    Overrides `Graphics.copyArea`.
    Specified by:
      `copyArea` in class `Graphics`
    Parameters:
      `x` - the x coordinate of the source rectangle.
      `y` - the y coordinate of the source rectangle.
      `width` - the width of the source rectangle.
      `height` - the height of the source rectangle.
      `destX` - the horizontal distance to copy the pixels.
      `destY` - the vertical distance to copy the pixels.

  - ### dispose

    public void dispose()
    Overrides `Graphics.dispose`.
    Specified by:
      `dispose` in class `Graphics`
    See Also:
      - `Graphics.finalize()`
      - `Component.paint(Graphics)`
      - `Component.update(Graphics)`
      - `Component.getGraphics()`
      - `Graphics.create()`

  - ### isDrawingBuffer

    public boolean isDrawingBuffer()
    Returns the drawingBuffer value.
    Returns:
      true if this object is drawing from a Buffer

  - ### setDebugOptions

    public void setDebugOptions(int options)
    Enables/disables diagnostic information about every graphics operation. The value of options indicates how this information should be displayed. LOG_OPTION causes a text message to be printed. FLASH_OPTION causes the drawing to flash several times. BUFFERED_OPTION creates a new Frame that shows each operation on an offscreen buffer. The value of options is bitwise OR'd into the current value. To disable debugging use NONE_OPTION.
    Parameters:
      `options` - indicates how diagnostic information should be displayed

  - ### getDebugOptions

    public int getDebugOptions()
    Returns the current debugging options for this DebugGraphics.
    Returns:
      the current debugging options for this DebugGraphics
    See Also:
      - `setDebugOptions(int)`