All pastes #518823 Raw Edit

Stuff

public java v1 · immutable
#518823 ·published 2007-05-29 12:58 UTC
rendered paste body
import java.awt.*;/** * A square that can be manipulated and that draws itself on a canvas. *  * @author  Michael Kolling and David J. Barnes * @version 1.0  (15 July 2000) */public class Square{    private int size;    private int xPosition;    private int yPosition;    private String color;    private boolean isVisible;        /**     * Create a new square at default position with default color.     */    public Square()    {        /*        size = 30;        xPosition = 60;        yPosition = 50;        color = "red";        isVisible = false;        */       this(60, 50,20,"blue");    }    public Square(int xStart, int yStart, int sizeStart, String colorStart)    {        size = sizeStart;        xPosition = xStart;        yPosition = yStart;        color = colorStart;        isVisible = false;    }    /**     * Make this square visible. If it was already visible, do nothing.     */    public void makeVisible()    {        isVisible = true;        draw();    }        /**     * Make this square invisible. If it was already invisible, do nothing.     */    public void makeInvisible()    {        erase();        isVisible = false;    }        /**     * Move the square a few pixels to the right.     */    public void moveRight()    {        moveHorizontal(20);    }    /**     * Move the square a few pixels to the left.     */    public void moveLeft()    {        moveHorizontal(-20);    }    /**     * Move the square a few pixels up.     */    public void moveUp()    {        moveVertical(-20);    }    /**     * Move the square a few pixels down.     */    public void moveDown()    {        moveVertical(20);    }    /**     * Move the square horizontally by 'distance' pixels.     */    public void moveHorizontal(int distance)    {        erase();        xPosition += distance;        draw();    }    /**     * Move the square vertically by 'distance' pixels.     */    public void moveVertical(int distance)    {        erase();        yPosition += distance;        draw();    }    /**     * Slowly move the square horizontally by 'distance' pixels.     */    public void slowMoveHorizontal(int distance)    {        int delta;        if(distance < 0)         {            delta = -1;            distance = -distance;        }        else         {            delta = 1;        }        for(int i = 0; i < distance; i++)        {            xPosition += delta;            draw();        }    }    /**     * Slowly move the square vertically by 'distance' pixels.     */    public void slowMoveVertical(int distance)    {        int delta;        if(distance < 0)         {            delta = -1;            distance = -distance;        }        else         {            delta = 1;        }        for(int i = 0; i < distance; i++)        {            yPosition += delta;            draw();        }    }    /**     * Change the size to the new size (in pixels). Size must be >= 0.     */    public void changeSize(int newSize)    {        erase();        size = newSize;        draw();    }    /**     * Change the color. Valid colors are "red", "yellow", "blue", "green",     * "magenta" and "black".     */    public void changeColor(String newColor)    {        color = newColor;        draw();    }    /*     * Draw the square with current specifications on screen.     */    private void draw()    {        if(isVisible) {            Canvas canvas = Canvas.getCanvas();            canvas.draw(this, color,                        new Rectangle(xPosition, yPosition, size, size));            canvas.wait(10);        }    }    /*     * Erase the square on screen.     */    private void erase()    {        if(isVisible) {            Canvas canvas = Canvas.getCanvas();            canvas.erase(this);        }    }        public static void relay()    {        Square one, two, three, four;        one = new Square(10, 10, 30,"red");        two = new Square(570, 10,20,"blue");               three = new Square(570, 570,30,"magenta");        four = new Square(10, 570,20,"yellow");                relay(one, two, three, four);    }        public static void relay(Square nw, Square ne, Square se, Square sw)    {                        nw.makeVisible();        sw.makeVisible();        ne.makeVisible();        se.makeVisible();                        nw.slowMoveHorizontal(570);        nw.erase();        ne.slowMoveVertical(570);         ne.erase();        se.slowMoveHorizontal(-570);         se.erase();        sw.slowMoveVertical(-570);                   }}