import java.awt.Color; import geofasc.swing.*; public class TrafficLight extends Rectangle { private Lamp mRedLamp, mYellowLamp, mGreenLamp; // 1 = RED, 2 = RED_YELLOW, 3 = GREEN, 4 = YELLOW private int mStatus; public TrafficLight() { super(70, 190); super.setFigureFillColor(Color.BLACK); super.setFigureFilled(true); mStatus = 1; mRedLamp = new Lamp(10, 10, 50, Color.RED, true); mYellowLamp = new Lamp(10, 70, 50, Color.YELLOW, false); mGreenLamp = new Lamp(10, 130, 50, Color.GREEN, false); super.add(mRedLamp); super.add(mYellowLamp); super.add(mGreenLamp); } public void setNextStatus() { setStatus(mStatus + 1); } public void setStatus(int status) { if ((mStatus = status) > 4) mStatus = 1; switch (mStatus) { case 1: // RED mRedLamp.setOn(true); mYellowLamp.setOn(false); mGreenLamp.setOn(false); break; case 2: // RED_YELLOW mRedLamp.setOn(true); mYellowLamp.setOn(true); mGreenLamp.setOn(false); break; case 3: mRedLamp.setOn(false); mYellowLamp.setOn(false); mGreenLamp.setOn(true); break; case 4: mRedLamp.setOn(false); mYellowLamp.setOn(true); mGreenLamp.setOn(false); break; } } } // class TrafficLight