Modify the following program to allow the user to change 
	the colors that are drawn.   Add at least 2 choices of colors and
    	buttons for each choice. For example, if you choose the colors 
	red and black, you should have buttons that when pressed,
    	change the color that is drawn to red or black, respectively. 
	Your applet should also have a clear button like OneColorDraw.
import java.applet.*;   
import java.awt.*;     
public class OneColorDraw extends Applet 
{
    private int last_x = 0;     
    private int last_y = 0;    
    private Button clear_button;
    private Color current_color = Color.black;  
    
    public void init() 
    {
        clear_button = new Button("Clear");
        clear_button.setForeground(Color.black);
        clear_button.setBackground(Color.lightGray);
        this.add(clear_button);           
    }
    public boolean mouseDrag(Event event, int x, int y)
    {
        Graphics g = this.getGraphics(); 
        g.setColor(current_color);      
        g.drawLine(last_x, last_y, x, y);
        last_x = x;     
        last_y = y;    
        return true;  
    }
    // (continued on the next page -->)
    
    public boolean action(Event event, Object arg) 
    {
        if (event.target == clear_button) {
            Graphics g = this.getGraphics();
            Rectangle r = this.bounds();
            g.setColor(this.getBackground());
            g.fillRect(r.x, r.y, r.width, r.height);
            return true;
        }
        else return super.action(event, arg);
    }
}
Fill in the missing function definitions in the PuzzlePiece
	class:
import ccj.*;
public class PuzzlePiece 
{   
    private Point ul;
    int label;
    /**
     * Initialize the label to 0 and the corner to (0,0).
     */
    public PuzzlePiece()
    {
    }
    /**
     * Initialize the label to l and the corner to (0,0).
     * @param l the label for the piece
     */
    public PuzzlePiece(int l)
    {
    }
    /**
     * Initialize the label to l and the corner to (x,y).
     * @param l the label for the piece
     * @param x the x-coordinate of the corner.
     * @param y the y-coordinate of the corner.
     */
    public PuzzlePiece(int l, double x, double y)
    {
    }
    // (continued on the next page -->)
    /**
     * Move the piece by dx units in the x direction and dy units in the y 
     * direction.
     * @param dx change in x-coordinate
     * @param dy change in y-coordinate
     */
    public void move(int dx, int dy)
    {
    }
    /**
     * Draw the puzzle piece.  The label is drawn, surrounded by
     * a square whose upper left corner is the point stored in
     * PuzzlePiece.
     */
    public void draw()
    {
        Point ll = new Point(ul.getX(), ul.getY()+2);
        Point lr = new Point(ul.getX()+2, ul.getY()+2);
        Point ur = new Point(ul.getX()+2, ul.getY());
        new Line( ul, ll).draw();
        new Line( ul, ur).draw();
        new Line( ll, lr).draw();
        new Line( ur, lr).draw();
        Point mp = new Point(ul.getX()+1, ul.getY()+1);
        Message m = new Message(mp, "" + label);
        m.draw();
    }
}