Computer Science 252
Problem Solving with Java
Spring 2015, The College of Saint Rose
ColorfulSpiralLines Demo
A working demo of ColorfulSpiralLines will appear below. Click inside the applet to interact with it.
ColorfulSpiralLines BlueJ Project
Click here to download a BlueJ project for ColorfulSpiralLines.
ColorfulSpiralLines Source Code
The Java source code for ColorfulSpiralLines is below. Click on a file name to download it.
import objectdraw.*;
import java.awt.*;
import java.util.Random;
/*
* Example ColorfulSpiralLines: adding some randomly chosen
* colors to our Spiral line drawings.
*
* Jim Teresco, Siena College, CSIS 120, Spring 2011
* Modified for CSC 252, The College of Saint Rose, Fall 2013, Spring 2014, Spring 2015
* Based on example from Williams College, CSCI 134
*
* $Id: ColorfulSpiralLines.java 2523 2015-01-16 21:36:54Z terescoj $
*/
public class ColorfulSpiralLines extends WindowController {
// first coordinate of a line segment
private Location linesStart;
// color of next sprial
private Color currentColor;
// random number generator -- created here since there is no
// need to construct one each time the onMousePress method
// is called
private Random pickAColor = new Random();
/*
* Save the first coordinate of the line, and pick
* a new random color.
*/
public void onMousePress(Location point) {
linesStart = point;
// since we only need colorNumber within this method, it
// is declared as a local variable.
// once we use it here to choose currentColor, we no
// longer need to remember its value
int colorNumber = pickAColor.nextInt(4);
switch (colorNumber) {
case 0:
currentColor = Color.red;
break;
case 1:
currentColor = Color.blue;
break;
case 2:
currentColor = Color.magenta;
break;
default:
currentColor = Color.green;
break;
}
}
/*
* As the user is dragging draw a line from
* initial point where mouse pressed to current point.
*/
public void onMouseDrag(Location point) {
new Line(linesStart, point, canvas).setColor(currentColor);
}
}