Mostrando entradas con la etiqueta runnable. Mostrar todas las entradas
Mostrando entradas con la etiqueta runnable. Mostrar todas las entradas

Cronometro en Java

Para implementar el cronometro hemos creado una ventana que contiene un label llamado "tiempo", en el cual vamos a mostrar el tiempo. Primero debemos hacer la clase "ejecutable" para ello anadimos "implements runnable" a la clase:

public class cronometro implements Runnable{

Debemos crear un metodo "run" para poder usar hilos, dentro de este, hay un ciclo infinito, que se detiene 1000 milisegundos (1 seg), e incrementa un uno el entero correspondiente a los segundos, cuando este es igual a 59 se aumentan los minutos, y cuando los minutos son iguales a 59 se aumentan las horas

int horas=0, minutos=0, segundos=0;

public void run() {
try
{
for(;;) {
if(segundos==59) { segundos=0; minutos++; }
if(minutos==59) { minutos=0; horas++; }
segundos++;

tiempo.setText(horas+":"+minutos+":"+segundos);

crono.sleep(1000); }
}
catch (InterruptedException e) { System.out.println(e.getMessage()); }
}

Usaremos hilos para manejar el tiempo, para declaramos un hilo global

Thread crono;

Y en el constructor de la clase iniciamos el hilo.

/** Creates new form cronometro */
public cronometro() {

initComponents();
crono = new Thread(this);
crono.start();
}

Y listo! tenemos un cronometro funcionando, podemos pararlo, pausarlo, etc solo es de usar la funcion apropiada.




Codigo Fuente:

/**
*
* @author ces ces2601[arroba]gmail.com
*/

import javax.swing.JFrame;

public class cronometro implements Runnable{

Thread crono;
javax.swing.JLabel tiempo = new javax.swing.JLabel();

/** Creates new form cronometro */
public cronometro() {
JFrame ventana = new JFrame("Cronometro");
ventana.add(tiempo);
ventana.setSize(150,100);
ventana.setVisible(true);

crono = new Thread(this);
crono.start();
}


int minutos=0, segundos=0, horas=0;
public void run()
{ try {
for(;;) {
if(segundos==59) { segundos=0; minutos++; }
if(minutos==59) { minutos=0; horas++; }
segundos++;

tiempo.setText(horas+":"+minutos+":"+segundos);
crono.sleep(1000); }
}
catch (InterruptedException e) { System.out.println(e.getMessage()); }
}

public static void main(String args[])
{
new cronometro();
}

}