setoflights.java

来自「Java经典例程 从外国一大学计算机教授出版物下载的代码 经典」· Java 代码 · 共 60 行

JAVA
60
字号
import java.awt.*;

class SetOfLights extends Thread {

    private int red = 0;
    private Canvas area;
    private int x;
    public boolean alive = true;

    public SetOfLights(Canvas c, int x) {
      area = c;
      this.x = x;
    }
    public void run() {
      while (alive) {
        for (int light = 0; light < 3; light++) {
          draw(light);
          try { sleep(500);}
          catch (InterruptedException e) { }
        }
      }
    }

    void draw(int light) {
      Graphics g = area.getGraphics();
      g.setColor(Color.black);
      g.drawOval(x-8, 10, 30, 68);
      g.drawOval(x,   85, 15, 15);
      g.drawString("RED",    x-90, 28);
      g.drawString("YELLOW", x-90, 48);
      g.drawString("GREEN",  x-90, 68);
      g.drawString("WALK",   x-90, 98);

      switch (light) {
        case 0:
          g.setColor(Color.red);
          g.fillOval(x, 15, 15, 15);
          g.setColor(Color.lightGray);
          g.fillOval(x, 35, 15, 15);
          g.fillOval(x, 55, 15, 15);
          break;
        case 1:
          g.setColor(Color.green);
          g.fillOval(x, 55, 15, 15);
          g.setColor(Color.lightGray);
          g.fillOval(x, 15, 15, 15);
          g.fillOval(x, 35, 15, 15);
          break;
        case 2:
          g.setColor(Color.yellow);
          g.fillOval(x, 35, 15, 15);
          g.setColor(Color.lightGray);
          g.fillOval(x, 15, 15, 15);
          g.fillOval(x, 55, 15, 15);
          break;
      }

    }
  }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?