Computer Science 252
Problem Solving with Java
Fall 2015, The College of Saint Rose
Knitting Demo
A working demo of Knitting will appear below. Click inside the applet to interact with it.
Knitting BlueJ Project
Click here to download a BlueJ project for Knitting.
Knitting Source Code
The Java source code for Knitting is below. Click on a file name to download it.
import objectdraw.*;
import java.awt.*;
/*
* Example Knitting: make scarves
*
* Jim Teresco, Siena College, CSIS 120, Spring 2011
* The College of Saint Rose, Fall 2013
* Based on example from Williams College CSCI 134
*
* $Id: Knitting.java 2218 2013-10-18 14:06:39Z terescoj $
*/
public class Knitting extends WindowController {
private static final int DIAMETER = 12; // diameter of a stitch
// spacing between stitches -- will overlap
private static final int X_DISP = 8;
private static final int Y_DISP = 8;
private static final int SCARF_WIDTH = 12; // num stitches per row
private static final int SCARF_HEIGHT = 40; // num stitches per column
private static final Color SCARF_COLOR = Color.blue; // scarf color
public void begin() {
new Text("Click to make a scarf", 10, 10, canvas);
}
// draws a scarf with upper left at point of click
public void onMouseClick(Location point) {
double y = point.getY(); // y position of the next "stitch"
int numRows = 0;
// draw SCARF_HEIGHT rows
while (numRows < SCARF_HEIGHT) {
double x = point.getX(); // / x position of the next "stitch"
int numCols = 0;
// draw one row consisting of SCARF_WIDTH circles
while (numCols < SCARF_WIDTH) {
FramedOval stitch = new FramedOval(x, y, DIAMETER, DIAMETER, canvas);
stitch.setColor(SCARF_COLOR);
x = x + X_DISP;
numCols = numCols + 1;
}
y = y + Y_DISP;
numRows = numRows + 1;
}
}
}