In this lab, you'll practice creating classes and objects, using ArrayList objects, and working
with interacting objects (with some nice visuals). Even better, you'll be working with circles,
widely considered to be the roundest of all two-dimensional shapes.
1. Import the starter code to begin. Instructions (if needed), for your IDE of choice:
a. Jgrasp:
i. Download the starter code folder from the website (Download -> Direct download).
ii. Extract (unzip) the downloaded folder (right-click -> Extract all).
iii. Copy the entire (unzipped) folder to your H: drive; rename it in the usual fashion.
b. Eclipse:
i. In Eclipse, create a new Java project named in the usual fashion.
ii. Download the starter code folder from the website (Download -> Direct download).
iii. Extract (unzip) the downloaded folder (right-click -> Extract all).
iv. Drag and drop the unzipped materials as follows:
1. Drag the source (*.java) files into the "src" folder.
2. See here for help (don't worry about text files): youtu.be/LOSICIeP6Ko
2. Create a class Circle.java which is a simple abstraction of an on-screen circle (image). A Circle
should (initially) have the following:
int x and int y The center point of the circle's on-screen location. These values represent
the circle's (initial) location on screen.
int radius The radius of the circle.
Color color The color of the circle. Color is a class that is built into Java, a software
abstraction of color. You can create a new color using Color's
three-parameter constructor (e.g. new Color(50, 100, 150)), where
each integer is a value 0-255 (corresponding to red, green, and blue
components, respectively). There are also pre-built colors in the Color class
that you can use, e.g. Color.RED or Color.BLACK. Import:
java.awt.Color.
3. Write Circle's 4-parameter constructor. Give the parameter variables real good names.
4. A Circle is responsible for drawing itself. Write a void draw() method that displays the circle on
screen using the StdDraw.java graphics library (included in starter code). Use the following:
StdDraw.setPenColor(color); //set the current color of the drawing window
StdDraw.filledCircle(x, y, radius); //draw a filled circle at , diam of radius*2
Page 1 of 5
5. The CircleAnimations class performs some on-screen animations using Circle objects; we say
CircleAnimations is a client of the Circle class.
a. CircleAnimations' constructor has been written for you. Nice! Look it over so you know what
variables a CircleAnimations object will have. For example, this class maintains a list of all the
circles currently in the animation.
6. In CircleAnimations, write a method void drawCircles() that will iterate through all objects in
the circles list and draw them to the screen. The drawCircles method should be called last
from any method that adds circles to the list or makes changes to the circles so that the results
appear on screen. You don't need to test this method quite yet.
7. In CircleAnimations, write a method void addCircles() that will add three randomly colored
circles with random locations to the circles list. Note: The size of the drawing window is saved
into CircleAnimations' size instance variable. Choose a random radius range you feel best
represents you as a person.