Slip No 5 Q B

Write a java program in multithreading using applet for Traffic signal.

Answer

package Multithread;
import javax.swing.; import java.awt.;
public class SignalSwing extends JFrame implements Runnable {

int r = 0, g1 = 0, y = 0;
Thread t;

public SignalSwing() {
    setTitle("Traffic Signal");
    setSize(400, 550);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);

    t = new Thread(this);
    t.start();
}

@Override
public void run() {
    try {
        while (true) {

            // GREEN
            g1 = 1; y = 0; r = 0;
            repaint();
            Thread.sleep(2000);

            // YELLOW
            g1 = 0; y = 1; r = 0;
            repaint();
            Thread.sleep(2000);

            // RED
            g1 = 0; y = 0; r = 1;
            repaint();
            Thread.sleep(2000);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

@Override
public void paint(Graphics g) {
    super.paint(g);

    // outlines
    g.setColor(Color.BLACK);
    g.drawOval(150, 100, 100, 100);
    g.drawOval(150, 225, 100, 100);
    g.drawOval(150, 350, 100, 100);

    // RED
    if (r == 1) {
        g.setColor(Color.RED);
        g.fillOval(150, 100, 100, 100);
        g.setColor(Color.BLACK);
        g.drawString("STOP", 270, 160);
    }

    // GREEN
    if (g1 == 1) {
        g.setColor(Color.GREEN);
        g.fillOval(150, 225, 100, 100);
        g.setColor(Color.BLACK);
        g.drawString("GO", 270, 285);
    }

    // YELLOW
    if (y == 1) {
        g.setColor(Color.YELLOW);
        g.fillOval(150, 350, 100, 100);
        g.setColor(Color.BLACK);
        g.drawString("SLOW", 270, 410);
    }
}

public static void main(String[] args) {
    new SignalSwing();
}
}

Spread the love

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top