|
Students are asked to write three modest graphics application programs. This gives them an opportunity to do some creative/analytical/critical thinking in the context of computational problem solving. The basic framework for each challenge is derived from the test program for the Canvas class. In particular, students are asked to do the following:
One constraint was provided to students for the "buildings" program. They were required to refine the code shown below.
|
/*
* Buildings.java
*/
package programs;
import clay.canvas.ClayCanvas;
import clay.math.ClayPoint;
import clay.shapes.ClayCircle;
import clay.shapes.ClayRectangle;
import clay.shapes.ClaySquare;
import java.awt.Color;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Buildings {
public Buildings() {
}
public static void main(String[] args) {
BuildingsFrame cc = new BuildingsFrame("Buildings");
cc.setVisible(true);
cc.canvas().initializeImage();
paintBuildings();
}
private static void paintBuildings() {
paintLeftBuilding();
paintCenterBuilding();
paintRightBuilding();
}
private static void paintLeftBuilding() {
moveLeft();
paintOneBuilding();
moveRight();
}
private static void paintCenterBuilding() {
paintOneBuilding();
}
private static void paintRightBuilding() {
moveRight();
paintOneBuilding();
moveLeft();
}
private static void moveLeft() {
throw new UnsupportedOperationException("Not yet implemented");
}
private static void moveRight() {
throw new UnsupportedOperationException("Not yet implemented");
}
private static void paintOneBuilding() {
throw new UnsupportedOperationException("Not yet implemented");
}
}
class BuildingsFrame extends Frame {
private ClayCanvas canvas = new ClayCanvas();
public ClayCanvas canvas()
{
return canvas;
}
public int width() {
return canvas.width();
}
public int height() {
return canvas.height();
}
public BuildingsFrame(String title)
{
super(title);
setSize(500,500);
setLayout(new GridLayout(1,1));
add(canvas);
addWindowListener(new CloseWindow());
}
class CloseWindow extends WindowAdapter {
public CloseWindow() {
}
public void windowClosing(WindowEvent event) {
System.exit(0);
}
}
}