import java.awt.*; /** * Interface for the drawing object to be drawn in the drawing panel. *
 * Any graphical objects to be displayed on the DrawingPanel
 * should implement this interface.
 * All the abstract methods of the interface must be defined in the
 * object class defining the graphical object.
 * 
 * For example, if Box is a class which implements
 * DrawingObj, i.e. the class declaration of Box
 * starts with the following line: 
 *      class Box implements DrawingObj {
 *        ...
 * Box can be added to the drawing
 * canvas as follows: 
 *      Box box = new Box(...);
 *      drawingPanel.addDrawingObj(box);
 *      box.move(x, y);
 *      drawingPanel.redraw();
 * 
Box called
 * box. The next line uses the method addDrawingObj
 * to add box into the canvas drawingPanel, which
 * is an instance of the object class DrawingPanel.
 * 
 * The move method of the drawing object (which must be
 * specified) is then called to move the corresponding object to position
 * (x, y). Finally, the redraw() method of
 * DrawingPanel class is called to refresh the panel and
 * delay for the object to be visible.
 * @see DrawingPanel
 * @see DrawingPanel#addDrawingObj
 * @see DrawingPanel#redraw
 */
public interface DrawingObj {
    /**
     * Paint method of the drawing object.
     * @param g A reference to the graphical context.
     */
    public void draw(Graphics g);
	
    /**
     * This method repositions the drawing object to the new location
     * specified by the paramters.
     * @param x The x coordinate of the drawing object's new position.
     * @param y The y coordinate of the drawing object's new position.
     */
    public void move(int x, int y);
    /**
     * Returns the x coordinate of the drawing object's reference point.
     * @return The x coordinate of the drawing object's reference point.
     */
    public int getX();
    /**
     * Returns the y coordinate of the drawing object's reference point.
     * @return The y coordinate of the drawing object's reference point.
     */
    public int getY();
} // interface