[src]
import java.lang.*;
import java.io.*;
import java.util.*;
import java.awt.*;
import javax.swing.*;
public class RandomDraw extends JFrame
{
int x,y;
Random r;

Color drawcol;
RandomDraw ()
{

super("test");
r= new Random();
setSize(500,300);
show();

}
void setColor(Color incolor)
{
drawcol=incolor;
}

public void paint(Graphics g)
{



x= r.nextInt(500);
y= r.nextInt(300);

g.setColor(drawcol);
g.fillOval(x,y,20,20);

}

public static void main(String args[])
{
RandomDraw main=new RandomDraw ();
DrawThread t1 = new DrawThread(main);
DrawThread t2 = new DrawThread(main);
DrawThread t3 = new DrawThread(main);
t1.start();
t2.start();
t3.start();
}

};

class DrawThread extends Thread
{
Random r;
Color drawcol;
RandomDraw myobj;
DrawThread(RandomDraw obj)
{
myobj=obj;
r=new Random();


}
public void run() {
//for(int x = 0; x < 10; x++) {
while(true){

int cir_col=r.nextInt(3);
System.out.println("cir_col:"+cir_col);
if(Thread.currentThread().getName().equals("Thread-1")){drawcol=Color.YELLOW;}
if(Thread.currentThread().getName().equals("Thread-2")){drawcol=Color.RED;}
if(Thread.currentThread().getName().equals("Thread-3")){drawcol=Color.GREEN;}

myobj.drawcol=drawcol;
myobj.repaint();

System.out.println(Thread.currentThread().getName());
try {
Thread.sleep(50);
} catch(Exception e) {}
}
}

}

[/src]