Assignment due Thursday April 28:

The little drawing system that I showed in class today is rather clunky, because it relies on two different types of objects -- TextLabel, and Drawable (and the various subclasses of Drawable), both of which use similar methods, but must be referenced separately.

Because of this, my code currently has two different arrays and two different logic loops for each of the three main operations: drawing, containment testing, and moving.

Your assignment is to get rid of this redundancy by having the drawing program use an interface named Movable. When you download and expand the zip file apr-21.zip, you will see a subfolder called movable. This folder is the package which contains the interface source file Movable.java, which has the following contents:

package movable;
import java.awt.*;

public interface Movable
{
   public void move(int dx, int dy);
   public void moveTo(int x, int y);
   public boolean contains(int x, int y);
   public void draw(Graphics g);
}
Since I've already implemented the required methods within both Drawable and TextLabel. What you need to do is the following: