object oriented programming
import javax.swing.JFrame;
public class TrafficControlApp {
/**
* @param args
*/
public static void main(String[] args) {
TrafficLight application = new TrafficLight();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
public class TrafficFixtureForward{
public int locateX;
public String direction;
public TrafficFixtureForward(String direction, int locateX){
this.locateX = locateX;
this.direction = direction;
}
public void trafficLight(Graphics g, int state){
g.setColor(Color.black);
g.setFont(new Font("Arial",Font.BOLD, 12));
g.drawString(direction, (locateX+4), 250);
switch(state){
case 1: g.setColor(Color.red);
g.fillOval(locateX,30,50,50);
g.setColor(Color.black);
g.fillOval(locateX,90,50,50);
g.setColor(Color.black);
g.fillOval(locateX,150,50,50);
break;
case 2: g.setColor(Color.black);
g.fillOval(locateX,30,50,50);
g.setColor(Color.yellow);
g.fillOval(locateX,90,50,50);
g.setColor(Color.black);
g.fillOval(locateX,150,50,50);
break;
case 3: g.setColor(Color.black);
g.fillOval(locateX,30,50,50);
g.setColor(Color.black);
g.fillOval(locateX,90,50,50);
g.setColor(Color.green);
g.fillOval(locateX,150,50,50);
break;
case 4: g.setColor(Color.black);
g.fillOval(locateX,30,50,50);
g.setColor(Color.black);
g.fillOval(locateX,90,50,50);
g.setColor(Color.green);
g.fillOval(locateX,150,50,50);
break;
}
}
public void delay(int delay){
try
{
Thread.sleep(delay); // do nothing for 1000 miliseconds (1 second)
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
}import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
public class TrafficFixtureTurn{
public int locateX;
public String direction;
public TrafficFixtureTurn(String direction, int locateX){
this.locateX = locateX;
this.direction = direction;
}
public void trafficLight(Graphics g,int state){
g.setColor(Color.black);
g.setFont(new Font("Arial",Font.BOLD, 12));
g.drawString(direction, (locateX+4), 250);
switch(state){
case 1: g.setColor(Color.black);
g.fillOval( locateX,30,50,50);
g.setColor(Color.red);
g.setFont(new Font("Arial",Font.BOLD, 40));
g.drawString("<", (locateX+10), 69);
g.setColor(Color.black);
g.fillOval(locateX,90,50,50);
g.setColor(Color.black);
g.fillOval(locateX,150,50,50);
break;
case 2: g.setColor(Color.black);
g.fillOval(locateX,30,50,50);
g.setColor(Color.black);
g.fillOval(locateX,90,50,50);
g.setColor(Color.yellow);
g.setFont(new Font("Arial",Font.BOLD, 40));
g.drawString("<", (locateX+10), 129);
g.setColor(Color.black);
g.fillOval(locateX,150,50,50);
break;
case 3: g.setColor(Color.black);
g.fillOval(locateX,30,50,50);
g.setColor(Color.black);
g.fillOval(locateX,90,50,50);
g.setColor(Color.black);
g.fillOval(locateX,150,50,50);
g.setColor(Color.green);
g.setFont(new Font("Arial",Font.BOLD, 40));
g.drawString("<", (locateX+10), 189);
break;
case 4: g.setColor(Color.black);
g.fillOval(locateX,30,50,50);
g.setColor(Color.black);
g.fillOval(locateX,90,50,50);
g.setColor(Color.black);
g.fillOval(locateX,150,50,50);
g.setColor(Color.green);
g.setFont(new Font("Arial",Font.BOLD, 40));
g.drawString("<", (locateX+10), 189);
break;
}
}
public void delay(int delay){
try
{
Thread.sleep(delay); // do nothing for 1000 miliseconds (1 second)
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
}
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
public class TrafficLight extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
public TrafficLight(){
super("Traffic Control Simulation");
setSize(400,400);
getContentPane().setBackground(Color.white);
setVisible(true);
}
public void paint( Graphics g){
super.paint(g);
TrafficFixtureForward westBound = new TrafficFixtureForward("West",30);
TrafficFixtureForward eastBound = new TrafficFixtureForward("East",210);
TrafficFixtureTurn turn = new TrafficFixtureTurn("Left Turn", 120);
TrafficFixtureForward northBound = new TrafficFixtureForward("North",300);
for(int x = 0; x <= 2000; x++){
//Turn Red, West Forward Green, East Forward Red
turn.trafficLight(g, 1);
westBound.trafficLight(g, 3);
eastBound.trafficLight(g, 3);
northBound.trafficLight(g, 1);
westBound.delay(2000);
//Turn Red, West Forward Yellow, East Forward Red
turn.trafficLight(g, 1);
westBound.trafficLight(g, 2);
eastBound.trafficLight(g, 2);
northBound.trafficLight(g, 1);
westBound.delay(2000);
//Turn Red, West Forward Red, East Forward Red
turn.trafficLight(g, 1);
westBound.trafficLight(g, 1);
eastBound.trafficLight(g, 1);
northBound.trafficLight(g, 1);
westBound.delay(800);
//Turn Green, West Forward Red, East Forward Red
turn.trafficLight(g, 3);
westBound.trafficLight(g, 1);
eastBound.trafficLight(g, 1);
northBound.trafficLight(g, 3);
westBound.delay(2000);
//Turn Yellow, West Forward Red, East Forward Red
turn.trafficLight(g, 2);
westBound.trafficLight(g, 1);
eastBound.trafficLight(g, 1);
northBound.trafficLight(g, 2);
westBound.delay(2000);
//Turn Red, West Forward Red, East Forward Red
turn.trafficLight(g, 1);
westBound.trafficLight(g, 1);
eastBound.trafficLight(g, 1);
northBound.trafficLight(g, 1);
westBound.delay(800);
}
}
}
No comments:
Post a Comment