swing Graphics Using the Graphics class



The Graphics class allows you to draw onto java components such as a Jpanel, it can be used to draw strings, lines, shapes and images. This is done by overriding the paintComponent(Graphics g) method of the JComponent you are drawing on using the Graphics object received as argument to do the drawing:

class Board

import java.awt.*;
import javax.swing.*;

public class Board extends JPanel{
    public Board() {

    public Dimension getPreferredSize() {
        return new Dimension(400, 400);
    public void paintComponent(Graphics g) {
        // draws a line diagonally across the screen
        g.drawLine(0, 0, 400, 400);
        // draws a rectangle around "hello there!"
        g.drawRect(140, 180, 115, 25);

wrapper class DrawingCanvas

import javax.swing.*;

public class DrawingCanvas extends JFrame {
    public DrawingCanvas() {
        Board board = new Board();
        add(board); // adds the Board to our JFrame    
        pack(); // sets JFrame dimension to contain subcomponents
        setTitle("Graphics Test");
        setLocationRelativeTo(null); // centers window on screen
    public static void main(String[] args) {
        DrawingCanvas canvas = new DrawingCanvas();


To draw shapes with different colors you must set the color of the Graphics object before each draw call using setColor:

g.setColor(Color.BLUE);  // draws a blue square
g.fillRect(10, 110, 100, 100);

g.setColor(Color.RED);  // draws a red circle
g.fillOval(10, 10, 100, 100);

g.setColor(Color.GREEN);  // draws a green triangle
int[] xPoints = {0, 200, 100};
int[] yPoints = {100, 100, 280};
g.fillPolygon(xPoints, yPoints, 3);