Cuando usamos NetBeans, no podemos hacer lo que había mostrado en la entrada anterior a este tema (Cronometro en Java):
public class cronometro implements Runnable{
puesto que la clase ya hereda de JFrame cuando se trabaja en NetBeans, la solucion para implementar un cronometro en NetBeans es bien sencilla, a continuacion vamos a ver como:
El hilo
Lo primero es crearnos un objeto de tipo Thread, en el cual vamos a definir nuestro método"run" el cual contendrá las acciones que queremos que nuestro cronometro haga, en este caso mostrar los minutos, segundos y horas que lleva.
Thread hilo = new Thread(){public void run(){try{while(true){if(seg==59) { seg=0; min++; }if(min==59) { min=0; hora++; }seg++;lblTime.setText(hora+":"+min+":"+seg);hilo.sleep(1000);}} catch (java.lang.InterruptedException ie) { System.out.println(ie.getMessage()); }}};
Dentro del metodo "run" hacemos un ciclo infinito, while(true) y con la funcion sleep() definimos cuanto se va a tardar en hacer la siguiente corrida, el tiempo siempre se pasa en milisegundos, asi que si definimos sleep(1000) se va a tardar un segundo en hacer la siguiente corrida, que es lo que queremos, que valla aumentando de segundo en segundo,
Los eventos
Los eventos de nuestro cronometro son 3, iniciar, pausar y parar. El evento de iniciar es de dos tipos, ya sea cuando vamos a iniciar el cronometro o si esta pausado y queremos resumirlo.
public boolean issuspended = false;private void btnStartMouseClicked(java.awt.event.MouseEvent evt) {if(!issuspended){hilo.start();lblStatus.setText("Estado: Iniciado");}else{hilo.resume();issuspended = false;lblStatus.setText("Estado: Resumido");}}
Primero preguntamos si esta pausado, si no lo esta lo iniciamos (start), si esta pausado lo resumimos (resume). Para pausar el cronometro usamos el metodo "suspend" que pausa indefinidamente el cronometro:
hilo.suspend();issuspended = true;lblStatus.setText("Estado: Suspendido");
Y para paralo usamos "stop":
hilo.stop();lblStatus.setText("Estado: Parado");
Y listo, nuestro cronometro se vera así:
Descarga el ejemplo completo acá: