Post Views: 3
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();
}
}