public class DebugGraphics extends Graphics
NOTE: You must turn off double buffering to use DebugGraphics: RepaintManager repaintManager = RepaintManager.currentManager(component); repaintManager.setDoubleBufferingEnabled(false);
| Modifier and Type | Field and Description | 
|---|---|
| static int | BUFFERED_OPTIONShow buffered operations in a separate  Frame. | 
| static int | FLASH_OPTIONFlash graphics operations. | 
| static int | LOG_OPTIONLog graphics operations. | 
| static int | NONE_OPTIONDon't debug graphics operations. | 
| Constructor and 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. | 
| Modifier and Type | Method and 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.createto return a DebugGraphics object. | 
| Graphics | create(int x,
      int y,
      int width,
      int height)Overrides  Graphics.createto 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 x,
         int y,
         Color bgcolor,
         ImageObserver observer)Overrides  Graphics.drawImage. | 
| boolean | drawImage(Image img,
         int x,
         int y,
         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 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. | 
| 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(AttributedCharacterIterator iterator,
          int x,
          int y)Overrides  Graphics.drawString. | 
| void | drawString(String aString,
          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. | 
drawPolygon, fillPolygon, finalize, getClipBounds, getClipRect, hitClip, toStringpublic static final int LOG_OPTION
public static final int FLASH_OPTION
public static final int BUFFERED_OPTION
Frame.public static final int NONE_OPTION
public DebugGraphics()
public DebugGraphics(Graphics graphics, JComponent component)
graphics - the Graphics context to slow downcomponent - the JComponent to draw slowlypublic DebugGraphics(Graphics graphics)
graphics - the Graphics context to slow downpublic Graphics create()
Graphics.create to return a DebugGraphics object.public Graphics create(int x, int y, int width, int height)
Graphics.create to return a DebugGraphics object.create in class Graphicsx - the x coordinate.y - the y coordinate.width - the width of the clipping rectangle.height - the height of the clipping rectangle.Graphics.translate(int, int), 
Graphics.clipRect(int, int, int, int)public static void setFlashColor(Color flashColor)
public static Color flashColor()
setFlashColor(java.awt.Color)public static void setFlashTime(int flashTime)
public static int flashTime()
setFlashTime(int)public static void setFlashCount(int flashCount)
public static int flashCount()
setFlashCount(int)public static void setLogStream(PrintStream stream)
public static PrintStream logStream()
setLogStream(java.io.PrintStream)public void setFont(Font aFont)
setFont in class GraphicsaFont - the font.Graphics.getFont(), 
Graphics.drawString(java.lang.String, int, int), 
Graphics.drawBytes(byte[], int, int, int, int), 
Graphics.drawChars(char[], int, int, int, int)public Font getFont()
getFont in class GraphicssetFont(java.awt.Font)public void setColor(Color aColor)
setColor in class GraphicsaColor - the new rendering color.Color, 
Graphics.getColor()public Color getColor()
getColor in class GraphicssetColor(java.awt.Color)public FontMetrics getFontMetrics()
Graphics.getFontMetrics.getFontMetrics in class GraphicsGraphics.getFont(), 
FontMetrics, 
Graphics.getFontMetrics(Font)public FontMetrics getFontMetrics(Font f)
Graphics.getFontMetrics.getFontMetrics in class Graphicsf - the specified fontGraphics.getFont(), 
FontMetrics, 
Graphics.getFontMetrics()public void translate(int x,
                      int y)
Graphics.translate.public void setPaintMode()
Graphics.setPaintMode.setPaintMode in class Graphicspublic void setXORMode(Color aColor)
Graphics.setXORMode.setXORMode in class GraphicsaColor - the XOR alternation colorpublic Rectangle getClipBounds()
Graphics.getClipBounds.getClipBounds in class Graphicsnull if no clip is set.Graphics.getClip(), 
Graphics.clipRect(int, int, int, int), 
Graphics.setClip(int, int, int, int), 
Graphics.setClip(Shape)public void clipRect(int x,
                     int y,
                     int width,
                     int height)
Graphics.clipRect.clipRect in class Graphicsx - the x coordinate of the rectangle to intersect the clip withy - the y coordinate of the rectangle to intersect the clip withwidth - the width of the rectangle to intersect the clip withheight - the height of the rectangle to intersect the clip withGraphics.setClip(int, int, int, int), 
Graphics.setClip(Shape)public void setClip(int x,
                    int y,
                    int width,
                    int height)
Graphics.setClip.setClip in class Graphicsx - 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.Graphics.clipRect(int, int, int, int), 
Graphics.setClip(Shape), 
Graphics.getClip()public Shape getClip()
Graphics.getClip.getClip in class GraphicsShape object representing the
              current clipping area, or null if
              no clip is set.Graphics.getClipBounds(), 
Graphics.clipRect(int, int, int, int), 
Graphics.setClip(int, int, int, int), 
Graphics.setClip(Shape)public void setClip(Shape clip)
Graphics.setClip.setClip in class Graphicsclip - the Shape to use to set the clipGraphics.getClip(), 
Graphics.clipRect(int, int, int, int), 
Graphics.setClip(int, int, int, int)public void drawRect(int x,
                     int y,
                     int width,
                     int height)
Graphics.drawRect.drawRect in class Graphicsx - 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.Graphics.fillRect(int, int, int, int), 
Graphics.clearRect(int, int, int, int)public void fillRect(int x,
                     int y,
                     int width,
                     int height)
Graphics.fillRect.fillRect in class Graphicsx - 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.Graphics.clearRect(int, int, int, int), 
Graphics.drawRect(int, int, int, int)public void clearRect(int x,
                      int y,
                      int width,
                      int height)
Graphics.clearRect.clearRect in class Graphicsx - 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.Graphics.fillRect(int, int, int, int), 
Graphics.drawRect(int, int, int, int), 
Graphics.setColor(java.awt.Color), 
Graphics.setPaintMode(), 
Graphics.setXORMode(java.awt.Color)public void drawRoundRect(int x,
                          int y,
                          int width,
                          int height,
                          int arcWidth,
                          int arcHeight)
Graphics.drawRoundRect.drawRoundRect in class Graphicsx - 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.Graphics.fillRoundRect(int, int, int, int, int, int)public void fillRoundRect(int x,
                          int y,
                          int width,
                          int height,
                          int arcWidth,
                          int arcHeight)
Graphics.fillRoundRect.fillRoundRect in class Graphicsx - 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.Graphics.drawRoundRect(int, int, int, int, int, int)public void drawLine(int x1,
                     int y1,
                     int x2,
                     int y2)
Graphics.drawLine.public void draw3DRect(int x,
                       int y,
                       int width,
                       int height,
                       boolean raised)
Graphics.draw3DRect.draw3DRect in class Graphicsx - 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.Graphics.fill3DRect(int, int, int, int, boolean)public void fill3DRect(int x,
                       int y,
                       int width,
                       int height,
                       boolean raised)
Graphics.fill3DRect.fill3DRect in class Graphicsx - 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.Graphics.draw3DRect(int, int, int, int, boolean)public void drawOval(int x,
                     int y,
                     int width,
                     int height)
Graphics.drawOval.drawOval in class Graphicsx - 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.Graphics.fillOval(int, int, int, int)public void fillOval(int x,
                     int y,
                     int width,
                     int height)
Graphics.fillOval.fillOval in class Graphicsx - 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.Graphics.drawOval(int, int, int, int)public void drawArc(int x,
                    int y,
                    int width,
                    int height,
                    int startAngle,
                    int arcAngle)
Graphics.drawArc.drawArc in class Graphicsx - 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.Graphics.fillArc(int, int, int, int, int, int)public void fillArc(int x,
                    int y,
                    int width,
                    int height,
                    int startAngle,
                    int arcAngle)
Graphics.fillArc.fillArc in class Graphicsx - 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.Graphics.drawArc(int, int, int, int, int, int)public void drawPolyline(int[] xPoints,
                         int[] yPoints,
                         int nPoints)
Graphics.drawPolyline.drawPolyline in class GraphicsxPoints - an array of x pointsyPoints - an array of y pointsnPoints - the total number of pointsGraphics.drawPolygon(int[], int[], int)public void drawPolygon(int[] xPoints,
                        int[] yPoints,
                        int nPoints)
Graphics.drawPolygon.drawPolygon in class GraphicsxPoints - a an array of x coordinates.yPoints - a an array of y coordinates.nPoints - a the total number of points.Graphics.fillPolygon(int[], int[], int), 
Graphics.drawPolyline(int[], int[], int)public void fillPolygon(int[] xPoints,
                        int[] yPoints,
                        int nPoints)
Graphics.fillPolygon.fillPolygon in class GraphicsxPoints - a an array of x coordinates.yPoints - a an array of y coordinates.nPoints - a the total number of points.Graphics.drawPolygon(int[], int[], int)public void drawString(String aString, int x, int y)
Graphics.drawString.drawString in class GraphicsaString - the string to be drawn.x - the x coordinate.y - the y coordinate.Graphics.drawBytes(byte[], int, int, int, int), 
Graphics.drawChars(char[], int, int, int, int)public void drawString(AttributedCharacterIterator iterator, int x, int y)
Graphics.drawString.drawString in class Graphicsiterator - the iterator whose text is to be drawnx - the x coordinate.y - the y coordinate.Graphics.drawBytes(byte[], int, int, int, int), 
Graphics.drawChars(char[], int, int, int, int)public void drawBytes(byte[] data,
                      int offset,
                      int length,
                      int x,
                      int y)
Graphics.drawBytes.drawBytes in class Graphicsdata - the data to be drawnoffset - the start offset in the datalength - the number of bytes that are drawnx - the x coordinate of the baseline of the texty - the y coordinate of the baseline of the textGraphics.drawChars(char[], int, int, int, int), 
Graphics.drawString(java.lang.String, int, int)public void drawChars(char[] data,
                      int offset,
                      int length,
                      int x,
                      int y)
Graphics.drawChars.drawChars in class Graphicsdata - the array of characters to be drawnoffset - the start offset in the datalength - the number of characters to be drawnx - the x coordinate of the baseline of the texty - the y coordinate of the baseline of the textGraphics.drawBytes(byte[], int, int, int, int), 
Graphics.drawString(java.lang.String, int, int)public boolean drawImage(Image img, int x, int y, ImageObserver observer)
Graphics.drawImage.drawImage in class Graphicsimg - 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.false if the image pixels are still changing;
           true otherwise.Image, 
ImageObserver, 
ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
Graphics.drawImage.drawImage in class Graphicsimg - 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.false if the image pixels are still changing;
           true otherwise.Image, 
ImageObserver, 
ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
Graphics.drawImage.drawImage in class Graphicsimg - 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.false if the image pixels are still changing;
           true otherwise.Image, 
ImageObserver, 
ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)public boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)
Graphics.drawImage.drawImage in class Graphicsimg - 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.false if the image pixels are still changing;
           true otherwise.Image, 
ImageObserver, 
ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
Graphics.drawImage.drawImage in class Graphicsimg - 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.false if the image pixels are still changing;
           true otherwise.Image, 
ImageObserver, 
ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)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)
Graphics.drawImage.drawImage in class Graphicsimg - 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.false if the image pixels are still changing;
           true otherwise.Image, 
ImageObserver, 
ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)public void copyArea(int x,
                     int y,
                     int width,
                     int height,
                     int destX,
                     int destY)
Graphics.copyArea.copyArea in class Graphicsx - 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.public void dispose()
Graphics.dispose.dispose in class GraphicsGraphics.finalize(), 
Component.paint(java.awt.Graphics), 
Component.update(java.awt.Graphics), 
Component.getGraphics(), 
Graphics.create()public boolean isDrawingBuffer()
public void setDebugOptions(int options)
public int getDebugOptions()
setDebugOptions(int) Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.