NestedSquaresController.java
importobjectdraw.*; import java.awt.*; public class NestedSquaresController extends WindowController { private NestedSquares nestedSquares; public void begin() { new Text("Click in Applet to 'moveTo' that location", 200, 10, canvas); nestedSquares = new NestedSquares(100, 100, 100, canvas); } // end begin public void onMousePress (Location point) { nestedSquares.moveTo(point.getX(), point.getY()); } // end onMousePress } // end NestedSquaresController class
NestedSquares.java
importobjectdraw.*; import java.awt.*; public class NestedSquares { private static final double SHIFT = 2; private FramedRect outerSquare; private NestedSquares rest; public NestedSquares(double x, double y, double size, DrawingCanvas canvas) { outerSquare = new FramedRect( x, y, size, size, canvas ); if ( size >= 4 ) { rest = new NestedSquares(x+SHIFT, y+SHIFT, size-2*SHIFT, canvas); } } public void moveTo(double x, double y) { outerSquare.moveTo(x,y); if (rest != null) { rest.moveTo(x+SHIFT, y+SHIFT); } } }