请问如何用JAVA多线程写一个红黄绿依次亮的交通灯程序?

来源:百度知道 编辑:UC知道 时间:2024/05/13 19:52:51
有红黄绿三盏交通灯,要求第一次红灯亮40秒,第二次黄灯亮10秒,第三次绿灯亮30秒,按这个规则循环交替。

可以这样表示灯亮:
System.out.println("红灯亮了"+"n秒");
System.out.println("黄灯亮了"+"n秒");
System.out.println("绿灯亮了"+"n秒");
采用多线程(三个线程)且使用同步块完成.

import java.awt.*;
import java.awt.event.*;

public class JiaoTong extends Frame {
boolean redStatus=false,greenStatus=false,yellowStatus=false;
int j=0;
public void paint(Graphics g) {
Color c=g.getColor();
if(redStatus==true)
{j++;
g.setColor(Color.RED);
g.fillOval(100,50, 50,50);
g.drawString("红灯亮了"+j+"秒", 100, 120);
}
else
{
g.setColor(Color.BLACK);
g.fillOval(100,50, 50,50);
}

if(yellowStatus==true){
j++;
g.setColor(Color.YELLOW);
g.fillOval(100, 150, 50, 50);
g.drawString("黄灯注意啦"+j+"秒", 100, 220);
}
else
{
g.setColor(Color.BLACK);
g.fillOval(100, 150, 50, 50);

}
if(greenStatus==true){
j++;
g.setColor(Color.GREEN);
g.fillOval(100, 250, 50, 50);
g.drawString("绿灯行"+j+"秒", 1