handout #8

CSE142—Computer Programming I

Sample Graphics Programs

Program File Draw1.java

// Steve Gribble and Carl Ebeling

// 1/18/06

//

// This is a simple drawing program that draws three versions of a particular

// subfigure on the screen.  In this unstructured version of the program

// all of the drawing commands appear in the main method.

 

import java.awt.*;

 

public class Draw1 {

    public static void main(String[] args) {

        DrawingPanel p = new DrawingPanel(500, 400);

        p.setBackground(Color.CYAN);

        Graphics g = p.getGraphics();

 

        // upper-left is (50, 50)

        // lower-right is (150, 150)

        g.setColor(Color.RED);

        g.fillRect(50, 50, 100, 100);

        g.setColor(Color.GREEN);

        g.fillOval(50, 50, 100, 100);

        g.setColor(Color.BLACK);

        g.drawRect(50, 50, 100, 100);

        g.drawOval(50, 50, 100, 100);

        g.drawLine(50, 50, 150, 150);

        g.drawLine(50, 150, 150, 50);

 

        // upper-left is (100, 200)

        // lower-right is (200, 300)

        g.setColor(Color.RED);

        g.fillRect(100, 200, 100, 100);

        g.setColor(Color.GREEN);

        g.fillOval(100, 200, 100, 100);

        g.setColor(Color.BLACK);

        g.drawRect(100, 200, 100, 100);

        g.drawOval(100, 200, 100, 100);

        g.drawLine(100, 200, 200, 300);

        g.drawLine(100, 300, 200, 200);

 

        // upper-left is (250, 150)

        // lower-right is (325, 225)

        g.setColor(Color.RED);

        g.fillRect(250, 150, 75, 75);

        g.setColor(Color.GREEN);

        g.fillOval(250, 150, 75, 75);

        g.setColor(Color.BLACK);

        g.drawRect(250, 150, 75, 75);

        g.drawOval(250, 150, 75, 75);

        g.drawLine(250, 150, 325, 225);

        g.drawLine(250, 225, 325, 150);

    }

}

Program File Draw2.java

// Steve Gribble and Carl Ebeling

// 1/18/06

//

// This is a simple drawing program that draws three versions of a particular

// subfigure on the screen.  This version is structured so that main calls

// three methods to draw the subfigures.

 

import java.awt.*;

 

public class Draw2 {

    public static void main(String[] args) {

        DrawingPanel p = new DrawingPanel(500, 400);

        p.setBackground(Color.CYAN);

        Graphics g = p.getGraphics();

        draw1(g);

        draw2(g);

        draw3(g);

    }

 

    // Draws a subfigure with  upper-left of (50, 50) and lower-right of

    // (150, 150)

    public static void draw1(Graphics g) {

        g.setColor(Color.RED);

        g.fillRect(50, 50, 100, 100);

        g.setColor(Color.GREEN);

        g.fillOval(50, 50, 100, 100);

        g.setColor(Color.BLACK);

        g.drawRect(50, 50, 100, 100);

        g.drawOval(50, 50, 100, 100);

        g.drawLine(50, 50, 150, 150);

        g.drawLine(50, 150, 150, 50);

    }

 

    // Draws a subfigure with  upper-left of (100, 200) and lower-right of

    // (200, 300)

    public static void draw2(Graphics g) {

        g.setColor(Color.RED);

        g.fillRect(100, 200, 100, 100);

        g.setColor(Color.GREEN);

        g.fillOval(100, 200, 100, 100);

        g.setColor(Color.BLACK);

        g.drawRect(100, 200, 100, 100);

        g.drawOval(100, 200, 100, 100);

        g.drawLine(100, 200, 200, 300);

        g.drawLine(100, 300, 200, 200);

    }

 

    // Draws a subfigure with  upper-left of (250, 150) and lower-right of

    // (325, 225)

    public static void draw3(Graphics g) {

        g.setColor(Color.RED);

        g.fillRect(250, 150, 75, 75);

        g.setColor(Color.GREEN);

        g.fillOval(250, 150, 75, 75);

        g.setColor(Color.BLACK);

        g.drawRect(250, 150, 75, 75);

        g.drawOval(250, 150, 75, 75);

        g.drawLine(250, 150, 325, 225);

        g.drawLine(250, 225, 325, 150);

    }

}

Program File Draw3.java

// Steve Gribble and Carl Ebeling

// 1/18/06

//

// This is a simple drawing program that draws three versions of a particular

// subfigure on the screen.  This version has a generalized method for

// drawing the subfigures that is called three different times.

 

import java.awt.*;

 

public class Draw3 {

    public static void main(String[] args) {

        DrawingPanel p = new DrawingPanel(500, 400);

        p.setBackground(Color.CYAN);

        Graphics g = p.getGraphics();

        draw(g, 50, 50, 100, 100);

        draw(g, 100, 200, 100, 100);

        draw(g, 250, 150, 75, 75);

    }

 

    // Draws a subfigure with  upper-left of (x, y) and given width and height

    public static void draw(Graphics g, int x, int y, int width, int height) {

        g.setColor(Color.RED);

        g.fillRect(x, y, width, height);

        g.setColor(Color.GREEN);

        g.fillOval(x, y, width, height);

        g.setColor(Color.BLACK);

        g.drawRect(x, y, width, height);

        g.drawOval(x, y, width, height);

        g.drawLine(x, y, x + width, y + height);

        g.drawLine(x, y + height, x + width, y);

    }

}

Graphical output