Ver Mensaje Individual
  #4 (permalink)  
Antiguo 29/07/2015, 13:48
Avatar de GusGarsaky
GusGarsaky
 
Fecha de Ingreso: febrero-2015
Mensajes: 33
Antigüedad: 9 años, 8 meses
Puntos: 2
Respuesta: ¿Cómo hacer un temporizador en JAVA?

Me pareció interesante, así que vamos a ello:

Este es el Timer:

Código Java:
Ver original
  1. import java.util.Timer;
  2. import java.util.TimerTask;
  3.  
  4. public class Timeout {
  5.  
  6.     private int hour = 0;
  7.     private int minute = 0;
  8.     private int second = 11;
  9.     private Timer timer;
  10.     private boolean isTimerRunning;
  11.     private Display display;
  12.  
  13.     public Timeout() {
  14.         timer = new Timer();
  15.         display = new Display();
  16.     }
  17.  
  18.     TimerTask task = new TimerTask() {
  19.         @Override
  20.         public void run() {
  21.             isTimerRunning = true;
  22.             if(second > 0) {
  23.                 second--;
  24.             } else {
  25.                 second = 59;
  26.                 if(minute > 0) minute--;
  27.                 else {
  28.                     minute = 59;
  29.                     if(hour > 0) hour--;
  30.                     // si segundo = 0, minuto = 0 y hora = 0,
  31.                     // cancelamos el timer
  32.                     else {
  33.                         isTimerRunning = false;
  34.                         timer.cancel();
  35.                         timer.purge();
  36.                     }
  37.                 }
  38.             }
  39.             if(isTimerRunning)
  40.                 display.printTime(hour, minute, second);
  41.         }
  42.     }; // fin timertask
  43.  
  44.     public void start(int timeout, int interval) {
  45.         timer.schedule(task, timeout, interval);
  46.     }
  47.  
  48. } // fin clase

Esta clase imprime la hora actual:

Código Java:
Ver original
  1. public class Display {
  2.  
  3.     public void printTime(int hour, int minute, int second) {
  4.         String fullHour = "";
  5.  
  6.         fullHour += (hour > 9) ? ":" + hour : "0" + hour;
  7.         fullHour += (minute > 9) ? ":" + minute : ":0" + minute;
  8.         fullHour += (second > 9) ? ":" + second : ":0" + second;
  9.  
  10.         System.out.println(fullHour);
  11.     }
  12. }

Y en el main solamente iniciamos el timer, pasándole el timeout (tiempo de espera en el que al acabar empezará el timer) y el intérvalo de tiempo en que se ejecutará el timer (en milisegundos).

Código Java:
Ver original
  1. public class TimerTest {
  2.  
  3.     public static void main(String[] args) {
  4.         Timeout timeout = new Timeout();
  5.         timeout.start(0, 1000);
  6.     }
  7. }

Demo:


Última edición por GusGarsaky; 29/07/2015 a las 14:02