##
RELOJ DIGITAL

Seguramente, siempre que hagamos una aplicación con una envergadura mínima, necesitaremos un temporizador. Así que vamos a implementar uno que llegue a resolución de segundos; porque, también es casi seguro, que en una aplicación normal, no necesitaremos más precisión.

Vamos a implementar nuestro temporizador, Timer.java, de la forma más general, haciendo que tenga un time-out, que se pueda resetear automática o manualmente y lo vamos a construir como un thread individual, con lo cual, podremos tener tantos timers como queramos.

La interface Temporizador, Temporizador.java, nos proporciona los métodos que necesitamos para implementar el funcionamiento del Timer, es decir, que consideraremos al Timer como un elemento observable, de forma que notifique a los observadores cuando algún evento ocurra, como puede ser el arranque del timer, la pérdida o su muerte. Así, si una clase determinada quiere ser avisada cuando le ocurra algo al timer, debe implementar la interface Temporizador, dejando vacíos los métodos que corresponden a los eventos que no le interese recoger.

La interface Temporizador consiste en cuatro métodos, de los cuales los más interesante son timerMuerto(), que se llama cuando la duración del timer se ha cumplido y, timerIntervalo(), que ocurre a intervalos regulares, según el tiempo que hayamos fijado.

Si una clase necesita más de un timer, puede implementar esta interface, pero entonces necesitaríamos incorporar a la clase que la use métodos para que fije e indique su nombre; de este modo, los timers estarán identificados dentro de la interface Temporizador y no habrá problemas al estar varios timers corriendo a la vez.

El applet que presentamos, RelojDigital.java, simplemente recoge la hora del sistema y la va actualizando cada segundo utilizando un timer. Hacemos uso también del componente Etiqueta que hemos desarrollado en otro ejemplo, para presentar el texto con la hora en la pantalla.

> Tu navegador no entiende la marca <APPLET>. La imagen siguiente es la reproducción de la apariencia del applet en pantalla:

|  | ##### [Anterior] [Indice] [Siguiente]