
import java.awt.*;
import java.applet.Applet;

public class ColorBoxes extends Applet
{
 	public void init() 
	{
		int pause = 100;
		int grid = 5;
                setBackground(Color.cyan);
		setLayout(new GridLayout(grid, grid));
		for (int i = 0; i < grid * grid; i++) add(new CBox(pause));
	}
}

class CBox extends Canvas implements Runnable 
{
  Thread t;
  int pause;
  Color cColor = nextColor();

	static final Color colors[] = 
	{ 
		Color.blue, 
		Color.cyan, 
		Color.red, 
//		Color.pink,
	};
  
	static final Color nextColor() 
	{
		return colors[(int)(Math.random() * colors.length)];
	}

	public void paint(Graphics  g) 
	{
		g.setColor(cColor);
		Dimension s = getSize();
		g.fillRect(0, 0, s.width, s.height);
	}

	CBox(int pause) 
	{
		this.pause = pause;
		t = new Thread(this);
 		t.start(); 
	}

	public void run() 
	{
		while(true) 
		{       cColor = nextColor();
			repaint();
			try {   t.sleep(pause);
			} catch(InterruptedException e) { }
		} 
	}
}            
