sábado, 13 de febrero de 2016

Controlar el tiempo en Java con Timer

Poder controlar el tiempo en una aplicación es fundamental para poder crear animaciones y otras muchas cosas. Con Timer podemos tener un control del tiempo en Java y poder controlar nuestros procesos de acuerdo a un tiempo preestablecido.

Añadir este control de tiempo en Java es muy sencillo y con muy pocas líneas de código
lo tenemos listo.

Las líneas que nos permiten tener ese control del tiempo son las siguientes:

 public Timer timerAplicacion;

    int velocidad = 3000;

    public VentanaConFondo()
    {

        ActionListener aplicacion = new ActionListener()
            {
                public void actionPerformed (ActionEvent e)
                {
                    crearVentana();
                }
            };
        timerAplicacion = new Timer (velocidad,aplicacion);

        timerAplicacion.start();

    }

Cómo veis trabajamos sobre proyectos que ya hemos visto en la página anteriormente. Para comenzar tenemos una primera línea para crear el Timer que en este caso se llama timerAplicacion. Seguidamente tenemos un entero de nombre velocidad que tiene valor 3000, esa variable es la que nos permitirá elegir con que frecuencia queremos que se vaya produciendo un evento, método, proceso, etc. Después tenemos un constructor de la clase que dentro ya tiene lo que es el Timer propiamente dicho y cómo vemos dentro de ese Timer lo que tenemos es el método crearVentana que se encargará de crear una ventana cada 3000 milisegundos que es lo que le tenemos puesto.

Muy fácil de implementar y con pocas líneas ya podemos dotar a nuestras aplicación o juego de un control autónomo de procesos para que se vayan haciendo cosas en determinados momentos sin que nosotros tengamos que hacer nada.

Os dejo un ejemplo en vídeo de cómo funciona. Primero está el Timer a 1000, es decir, se crean ventanas cada segundo y después lo cambiamos a 3000 para que se creen cada 3 segundos:


Ahí podéis ver cómo funciona. Al principio va creando las ventanas cada segundo y luego al cambiárselo a 3 segundos las crea cada 3, así de fácil. Cualquier otra cosa que pusiéramos dentro del Timer la haría exactamente igual. Es decir podríamos tener cualquier método, proceso, función, etc que quisiéramos que se fuera repitiendo de forma autónoma. Ya si quisiéramos que fuera variando el tiempo de ejecución del Timer sólo tendríamos que ir jugando con la variable velocidad, aumentándola, reduciéndola, etc, teniendo así posibilidades infinitas.

2 comentarios:

  1. hola amigo bns dias tu codigo esta interesante pero no entiendo bien su funcionamiento seria genial q lo implementaras en una ventana un jframe en netbeans para entender bien como funciona o como se maneja muchas gracias

    ResponderEliminar
  2. Hola, te lo pongo con comentarios a ver si así te resulta más fácil:

    public Timer timerAplicacion;//declaración del timer, esta línea es para crear un objeto Timer que en este caso se llama timerAplicacion

    int velocidad = 3000;//velocidad del timer, es para ajustar la velocidad de nuestro Timer, en este caso a 3000 milisegundos, es decir, se ejecutará cada 3 segundos

    public VentanaConFondo()//método que tiene el timer y que a su vez tiene dentro otro método
    {

    ActionListener aplicacion = new ActionListener()
    {
    public void actionPerformed (ActionEvent e)
    {
    crearVentana();
    }
    };
    timerAplicacion = new Timer (velocidad,aplicacion);//timer que ejecuta en el tiempo que le pasamos en la primera variable (velocidad) lo que le pasamos en la segunda variable (aplicacion) que en este caso es un ActionListener

    timerAplicacion.start();//empieza a funcionar el timer

    }

    Espero que así te quede más claro, cualquier cosa no dudes en volver a preguntar

    ResponderEliminar