 import java.awt.Color;
 import java.awt.Graphics;
 import java.awt.Image;
 import java.awt.Canvas;
 import java.awt.Event;
 import java.applet.Applet;


 public  class  paint  extends Applet {
   private int x = 10, y = 10, x2 = 100, y2 = 120;
   public  Color c = Color.yellow;
   Image buffer;

	public void init(){
		setLayout(null);
		setBackground(Color.white);
		palette pal = new palette(this);
		pal.reshape(160,0,40,200);
		add(pal);
		buffer = createImage(160,200);
	}

	public void paint(Graphics g){
		Graphics tmp = buffer.getGraphics();
		tmp.setColor(c);
		tmp.drawLine(x,y,x2,y2);
		g.drawImage(buffer,0,0,null);
	}
	
	public boolean handleEvent(Event e){
		if(e.id == Event.MOUSE_DOWN){
			x  = e.x;
			y  = e.y;
			x2 = e.x;
			y2 = e.y;
		}
		else if(e.id == Event.MOUSE_DRAG){
		        Graphics tmp = getGraphics();
			tmp.setColor(Color.white);
			tmp.drawLine(x, y, x2, y2);
			x2 = e.x;
			y2 = e.y;
			tmp.setColor(c);
			tmp.drawLine(x, y, x2, y2);
		}
		else if(e.id == Event.MOUSE_UP){
			repaint();
		}
		return true;
	}
}


class palette extends Canvas {
 paint myP;

	public palette(paint p){
		myP = p;
	}

	public boolean handleEvent(Event e){
	   if(e.id==Event.MOUSE_DOWN){
		     if(e.y < 40)  myP.c = Color.yellow;
		else if(e.y < 80)  myP.c = Color.blue;
		else if(e.y < 120) myP.c = Color.green;
		else if(e.y < 160) myP.c = Color.gray;
		else if(e.y < 200) myP.c = Color.pink;
           }	
	   return true;
	}

	public void paint(Graphics g){
		g.setColor(Color.yellow);
		g.fillRect(0,0,40,40);
		g.setColor(Color.blue);
		g.fillRect(0,40,40,40);
		g.setColor(Color.green);
		g.fillRect(0,80,40,40);
		g.setColor(Color.gray);
		g.fillRect(0,120,40,40);
		g.setColor(Color.pink);
		g.fillRect(0,160,40,40);
	}
}
