BasketDemo.java

import objectdraw.*;
import java.awt.*;

/**
 * Demonstrates the creation of a "fancy" laundry basket
 */
public class BasketDemo extends WindowController
{
    // Constants controlling basket locations
    private static final int BASKET_TOPS = 120;    
    private static final int BASKET_LEFT = 20;
    private static final int BASKET_OFFSET = 100;
    
    
    /**
     * a basket for white laundry.
     */
    private LaundryBasket white;
    
    /**
     * Initializes the applet by constructing all the objects.
     */
    public void begin()
    {
        white =new LaundryBasket(BASKET_LEFT + 0*BASKET_OFFSET, 
                                 BASKET_TOPS, canvas);
    }
}

   

        




LaundryBasket.java

import objectdraw.*;
import java.awt.*;

        // A class of objects that look a bit like laundry
        // baskets
public class LaundryBasket {

    // Constants controlling basket sizes
    private static final int BASKET_SIZE = 80;    
    private static final int BASKET_HEIGHT = 40;
    
    // difference between top and bottom ends
    private static final int INSET = 9;
    // separation between lines in basket body
    private static final int LINESEP = 5;

    // Create a new laundry basket
    //
    // x,y   -- location of basket's upper left corner
    // canvas - the drawing canvas
    public LaundryBasket( double x, double y, DrawingCanvas canvas) {
        double topLineX, botLineX;
        
        // top of the basket
        new Line(x, y, x+BASKET_SIZE, y, canvas);
        // bottom of the basket
        new Line(x+INSET, y+BASKET_HEIGHT, 
                 x+BASKET_SIZE-INSET, y+BASKET_HEIGHT, canvas);        
        
        topLineX = x; 
        botLineX = x+INSET;
        while ( topLineX <= x+BASKET_SIZE) {
            new Line(topLineX, y, botLineX, y+BASKET_HEIGHT, canvas);
            
            topLineX = topLineX + LINESEP;
            botLineX = botLineX + LINESEP*(BASKET_SIZE-2.0*INSET)/BASKET_SIZE;
        }
    }
}