Hacer un timer de forma sencilla

2294 vistas

Podemos usar la clase java.lang.Thread o implementar la interfaz java.lang.Runnable, pero siguiendo el ejemplo anterior esto representa mucho código y molestia. De hecho, las instrucciones que afectan o dependen de un componente gráfico Swing tienen que realizarse por el proceso de eventos (the event-dispatching thread). Por consiguiente, si usamos la clase Thread o la interfaz Runnable tendremos que usar los métodos invokeLater(java.lang.Runnable) o invokeAndWait(java.lang.Runnable)" javax.swing.SwingUtilities.

La clase Timer:
La clase javax.swing.Timer puede sustituir de forma muy ventajosa el uso directo de thread devido a que genera un evento a intervalos regulares (1 milisegundo). Es el "event-dispatching thread" quien ejecuta el evento, por lo tanto podemos modificar directamente los objetos gráficos.

Métodos importantes:
El contructor de javax.swing.Timer :



java
  1. public Timer (int delay, ActionListener listener);
  2. /** delay = intervalo de tiempo entre cada evento listener */



Método que permite ejecutar el proceso:



java
  1. public void start();



Método que permite parar el proceso:



java
  1. public void stop();



Nota:
Este método tiene que usarse únicamente si el proceso a realizar es corto en tiempo de ejecución, sino, tendremos una interfaz no reactiva durante el proceso....