a java program to create animated traffic signal (use 5 seconds to blink each light one after the other) using multithreading.
import java.awt.*; import java.applet.*; import java.awt.event.*; public class traffic extends Applet implements Runnable{ Thread t; Font f,f1; int i=0,a=0,j=0; public void init(){ setBackground(Color.lightGray); f=new Font("TimesNewRoman",f.ITALIC,28); f1=new Font("TimesNewRoman",Font.ITALIC+Font.BOLD,28); } public void start() { t=new Thread(this); t.start(); } public void run(){ for(i=25;i>=0;i--){ try { Thread.sleep(5000); } catch(Exception e){ System.out.println(e); } if(i<=25 && i>3){ a=1; repaint(); } else if(i<=3 && i>0){ a=2; repaint(); } else if(i==0){ for(j=0;j<25;j++){ a=3; try { Thread.sleep(5000); } catch(Exception e){ System.out.println(e); } repaint(); } if(j==25){ run(); } } } repaint(); }
continue..
public void paint(Graphics g) { setBackground(Color.lightGray); g.setColor(Color.black); g.fillArc(100,150,100,100,0,180); g.drawArc(100,150,100,100,0,180); g.setColor(Color.black); g.fillRect(150,150,50,150); g.drawRect(150,150,50,150); g.setColor(Color.black); g.fillRect(165,300,20,155); g.drawRect(165,300,20,155); g.drawOval(150,150,50,50); g.drawOval(150,200,50,50); g.drawOval(150,250,50,50); g.setColor(Color.red); g.setFont(f); g.drawString(""+i,50,50); g.setColor(Color.white); g.fillRect(300,5,15,125); g.drawRect(300,5,15,125); g.setColor(Color.white); g.fillRect(300,145,15,135); g.drawRect(300,145,15,135); g.setColor(Color.white); g.fillRect(300,300,15,135); g.drawRect(300,300,15,135); g.setColor(Color.white); g.fillRect(450,5,15,125); g.drawRect(450,5,15,125); g.setColor(Color.white); g.fillRect(450,145,15,135); g.drawRect(450,145,15,135); g.setColor(Color.white); g.fillRect(450,300,15,135); g.drawRect(450,300,15,135); g.setColor(Color.black); g.fillRect(600,300,15,135); g.drawRect(600,300,15,135); g.setColor(Color.green); g.fillArc(560,290,100,100,0,180); g.drawArc(560,290,100,100,0,180); g.setColor(Color.black); g.fillRect(460,300,15,135); g.drawRect(460,300,15,135); g.setColor(Color.green); g.fillArc(420,290,100,100,0,180); g.drawArc(420,290,100,100,0,180); if(a==1){ g.setColor(Color.red); g.fillOval(150,150,50,50); g.drawOval(150,150,50,50); g.drawString("STOP",50,150); } if(a==2){ g.setColor(Color.yellow); g.fillOval(150,200,50,50); g.drawOval(150,200,50,50); g.drawString("READY",50,200); } if(a==3){ g.setColor(Color.blue); g.setFont(f); g.drawString(""+j,150,50); g.setColor(Color.green); g.fillOval(150,250,50,50); g.drawOval(150,250,50,50); g.drawString("GO",50,250); } int x1[]={220,300,300,280}; int y1[]={250,150,250,150}; int n1=4; int n2=3; int x2[]={340,380,380}; int y2[]={150,100,150}; int x3[]={460,460,500}; int y3[]={150,100,150}; g.setColor(Color.black); g.fillPolygon(x1,y1,n1); g.drawPolygon(x1,y1,n1); g.setColor(Color.yellow); g.fillRect(380,100,80,50); g.drawRect(380,100,80,50); g.setColor(Color.yellow); g.fillPolygon(x2,y2,n2); g.drawPolygon(x2,y2,n2); g.setColor(Color.yellow); g.fillPolygon(x3,y3,n2); g.drawPolygon(x3,y3,n2); g.setColor(Color.black); g.fillOval(440,210,60,60); g.drawOval(440,210,60,60); g.setColor(Color.black); g.fillOval(340,210,60,60); g.drawOval(340,210,60,60); g.setColor(Color.red); g.fillRect(300,150,250,100); g.drawRect(300,150,250,100); g.setColor(Color.black); g.setFont(f1); g.drawString ("Zumbo",380,200); } }
Ads