# Java: Summary: Graphics methods and related classes

A summary of `java.awt.Graphics` methods for drawing shapes, text, ... Other classes define more advanced graphics, eg, `javax.swing.Graphics2D`. Related classes: Fonts, Images - ImageIcon

## java.awt.Graphics Class - Basic drawing methods

Draw on a JComponent or JPanel by overriding `paintComponent()`. Assume `g` is a `Graphics` object, and all variables are type `int` unless otherwise declared. Angles (int startAngle, arcAngle) are in degrees counterclockwise from 3 o'clock. These methods use (x,y) at the top, left, corner and a width and height of the bounding box (except drawString() and drawLine()).

    g.drawLine(x1, y1, x2, y2);
    g.drawRect(x, y, width, height);  // (x,y) is upper left corner
    g.fillRect(x, y, width, height);
    g.drawOval(x, y, width, height);
    g.fillOval(x, y, width, height);
    g.drawArc( x, y, width, height, startAngle, arcAngle);
    g.fillArc( x, y, width, height, startAngle, arcAngle);
    g.drawString(String s, x, y); // Draws s with the left base at (x,y)

    g.setColor(Color c);          // All drawing after this uses the Color c.
    g.setFont(Font f);            // All drawing after this uses the Font f.

    g.drawPolyline(int[] xPoints, int[] yPoints, nPoints); // Draws line
    g.drawPolygon( int[] xPoints, int[] yPoints, nPoints); // Draws polygon
    g.drawPolygon( poly);         // draws polygon, same for fillPolygon.
    g.fillPolygon( int[] xPoints, int[] yPoints, nPoints); // Fills polygon

## java.awt.Color Class

Predefined colors (lowercase without underscores for pre-Java 1.4) | `Color.BLACK, Color.WHITE, Color.DARK_GRAY, Color.GRAY, Color.LIGHT_GRAY, Color.BLUE, Color.CYAN, Color.GREEN, Color.RED, Color.MAGENTA, Color.PINK, Color.ORANGE, Color.YELLOW, Color.BLUE, Color.CYAN`
Creating a color | `c = new Color(int r, int g, int b); // creates a new color with RGB values (each 0-255)` Example: `Color mediumBlue = new Color(128, 128, 255);`

## Drawing an image using ImageIcon

Use `java.awt.ImageIcon` to load and draw JPEG, GIF, or PNG images.

## java.awt.Polygon

Straight-sided shapes (eg, triangles) can be created with Polygon class and the Graphics drawPolygon or fillPolygon methods. Add each vertex as an (x, y) pair.

    Polygon poly = new Polygon();  // declare and create
    poly.addPoint(x, y);  // add points to polygon
    . . .
    g.drawPolygon(poly);

The polygon coordinates can be translated with:

    poly.translate(deltaX, deltaY);

There is also a Polygon constructor which takes arrays of points:

     Polygon p = new Polygon(int[] xPoints, int[] yPoints, int nPoints);