Computer Science 120
Introduction to Programming

Spring 2012, Siena College

MakeOvals Demo

A working demo of MakeOvals will appear below. Click inside the applet to interact with it.

MakeOvals BlueJ Project

Click here to download a BlueJ project for MakeOvals.

MakeOvals Source Code

The Java source code for MakeOvals is below. Click on a file name to download it.

import objectdraw.*;

import java.awt.*;




import java.util.StringTokenizer;


 * MakeOvals example demonstrating the use of a 

 * FileReader/BufferedReader for reading an input

 * file and a StringTokenizer to break it down


 * Primary author: Sharon Small

 * Modified by: Jim Teresco

 * CSIS 120, Siena College Spring 2012


 * $Id$


public class MakeOvals extends WindowController {

    // when the mouse is clicked, read a file OvalInput.txt

    // that contains lines that each consist of 4 numbers

    // and a string.  The numbers should be x, y, width, height

    // of a FilledOval to be drawn, and the string should be

    // its color (one of "red", "green", or "blue").

    public void onMouseClick(Location point){

        try {

            // a combination of a FileReader and a BufferedReader

            // is an alternative mechanism you may see for reading

            // files in Java.

            FileReader fr = new FileReader("OvalInput.txt");

            BufferedReader bfr = new BufferedReader(fr);

            String inputLine;


            // the BufferedReader's readLine method will return

            // the next line of input if one exists, null if

            // the end of the input has been encountered.

            while((inputLine = bfr.readLine()) != null){



                // the input String needs to be broken into the 5

                // components that make it up so they can be passed

                // to the FilledOval constructor.  StringTokenizer

                // is a mechanism that can do this.


                // This constructs a tokenizer that will return

                // parts of inputLine that are separated by

                // a string consisting of a space

                StringTokenizer st = new StringTokenizer(inputLine, " ");

                // now, we can get each successive String out of the

                // tokenizer by calling nextToken.  This gives a String,

                // which we need as an int.  Passing this String to

                // the constructor of the Integer is another way to

                // convert this String into an appropriate Integer.

                Integer x = new Integer(st.nextToken());

                Integer y = new Integer(st.nextToken());

                Integer width = new Integer(st.nextToken());

                Integer height = new Integer(st.nextToken());

                FilledOval inputOval = new FilledOval(x,y,width,height,canvas);

                setOvalColor(st.nextToken(), inputOval);




        catch(IOException ioe){

            System.out.println("Problem opening input file: " + ioe);



    public void setOvalColor(String colorInput, FilledOval inputOval){

        if (colorInput.equals("red")){



        else if (colorInput.equals("green")){



        else if (colorInput.equals("blue")){