黑马程序员——交通灯管理系统

-------android培训java培训、期待与您交流! ----------

看过张老师的7k面试题——交通灯管理系统之后,感觉自己在面向对象设计方面缺乏经验,任然不能够按照老师的想法与要求写出

源代码,就根据自己的想法,设计了一个简单交通灯管理系统设计。

 交通灯信号有红,绿,黄三种信号显示输出。
1   在javax.swing.Timer的定时控制下, 轮流输出三种信号;也可使用自己定义的定时器实现三种信号轮流显示。
2  在窗口中应该有启动按钮,停止按钮,可以设置三种状态的显示时间。
3  实现支持信号灯的点击事件, 例如, 用鼠标点击红灯, 那么红灯立刻亮, 然后再进入到定时三种信号的转换输出。

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+"秒", 100, 320);
  }
  else
  {
   g.setColor(Color.BLACK);
   g.fillOval(100, 250, 50, 50);
  }
     g.setColor(c);
 }

 public void Lauch() {
  setTitle("交通灯指示");
  setSize(300, 400);
  setBackground(Color.BLACK);
  addWindowListener(new WindowAdapter() {

   public void windowClosing(WindowEvent e) {
    System.exit(0);
   }

  });

setVisible(true);

new Thread(new PaintThread()).start();
 }

 public static void main(String[] args) {
   JiaoTong a=new JiaoTong();
   a.Lauch();

 }
 
 public class PaintThread implements Runnable
 {

  public void run() {
   for(int i=0;i<80;i++){
    switch (i) {
     case 0:
     j=0;
     redStatus=true;
     greenStatus=false;
     yellowStatus=false;
     break;
     case 40:
     j=0;
     redStatus=false;
     greenStatus=false;
     yellowStatus=true;
     break;
     case 50:
     j=0;
     redStatus=false;
     greenStatus=true;
     yellowStatus=false;
     break;
     default:
     break;
    }
    repaint();
    if(i==79)
     i=-1;
    try
    {
     Thread.sleep(1000);
     
    }
    catch(InterruptedException e)
    {
     e.printStackTrace();
    }
   }
   
  }
  
 }

}


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值