miércoles, 27 de marzo de 2013

semaforo en java


public class ColorAmarillo {
    private String luz ;
    public ColorAmarillo()
    {
        this.luz = "amarillo"; 
    }
    public String getLuz()
    {
        return this.luz;
    }
}

// vamos a dividir todo en clases para poderlo manejar como objetos


public class ColorRojo {
    private String luz ;
    public ColorRojo()
    {
        this.luz = "rojo"; 
    }
    public String getLuz()
    {
        return this.luz;
    }
    
}

//separemos los colores


public class ColorVerde {
    private String luz ;
    public ColorVerde()
    {
        this.luz = "Verde"; 
    }
    public String getLuz()
    {
        return this.luz;
    }
    
}

//crearemos una clase temporizador que viene a ser el funcionamiento interno del semaforo


public class Temporizador {
    public void semaforoprendido(int velocidad) throws InterruptedException
    {
        ColorAmarillo a = new ColorAmarillo();
        ColorRojo r= new ColorRojo();
        ColorVerde v = new ColorVerde();
        while (true)
        {
            System.out.println(r.getLuz());
            Thread.sleep(velocidad);
            System.out.println(a.getLuz());;
            Thread.sleep(velocidad/2);
            System.out.println(v.getLuz());
            Thread.sleep(velocidad);
            Thread.sleep(velocidad/2);
        }
    }    
}


// la calse semaforo que es la principal o raiz

import javax.swing.JOptionPane;
public class Semaforo {
    public static void main(String[] args) throws InterruptedException
    {
        int vel=3000;
        try
        {
        vel = Integer.parseInt(JOptionPane.showInputDialog("digite la velocidad y ok para iniciar el semaforo"));
        }
        catch(Exception e)
        {
            vel=300;
        }
        Temporizador s = new Temporizador();
        s.semaforoprendido(vel);
    }
    
}






6 comentarios:

  1. Sale error en la clase Semáforo, porque al ser estática no se puede llamar aspectos de otras clases, por eso no deja crear el temporizador en la clase principal

    ResponderEliminar
  2. Andres muchas gracias mira ya arregle el problema era que yo antes tenia el semaforo funcionando en un entorno visual pero queria hacerlo sencillo y poner lo en consola entonces me habia quedado un pequeño codigo del anterior lo que no dejaba ejecutar pero ya quedo solucionado era solo eliminar ese pedazo de codigo ya solo cambia la clase semaforo y Temporizador por la que hay aca que ya esta arreglada igual voy a montar un videito mostrando el proceso de como lo hice y que hace cada cosa

    ResponderEliminar
    Respuestas
    1. amigo donde puedo conseguir el video donde arreglas el codigo??

      Eliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar