Personal tools
You are here: Home Classes Fall 2004 - Spring 2005 CS 150 2.28.05 Square.java
Document Actions

Square.java

by admin last modified 2005-05-11 13:36

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; private Rectangle border; /* Create a new square at default position with default color. */ public Square(int x, int y, int s) { size = s; xPosition = x; yPosition = y; color = "white"; isVisible = false; border = new Rectangle(x, y, s, s); }

/* 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; border = new Rectangle( xPosition, yPosition, size, size); 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; border = new Rectangle(xPosition, yPosition, size, size); 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.border, "black", this.border); canvas.draw(this, color, new Rectangle(xPosition+1, yPosition+1, size-2, size-2));

} }

/ Erase the square on screen. */ private void erase() { if(isVisible) { Canvas canvas = Canvas.getCanvas(); canvas.erase(this); } } }

 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: