viernes, 18 de mayo de 2012

Crear Reloj en java usando Hilos-Topicos Selectos


Elegir el diseño correspondiente a su reloj. En este caso sera un reloj digital que constara de 4 botones:
  • -Inicio
  • -Pausar
  • -Reanudar
  • -Detener


Ahora bien dependiendo de su lógica de programación es como se creara el thread. En este caso implementaremos la interfaz Runnable a nuestro Form y declarar el método run en el cual ira el código correspondiente al hilo

public class HomeReloj extends javax.swing.JFrame implements Runnable {
    

     public void run(){
         ................

         ................
    }

 ..................

ahora bien realizaremos las importaciones que necesitaremos para obtener la hora del sistema.


import java.util.Calendar;
import java.util.GregorianCalendar;

ahora si, ya podemos escribir el código correspondiente al metodo run:

public void run(){
        String hora; //
Es la cadena en donde se guardara la ora
        while(true){ //
ciclo que se encargara de imprimir la ora en cada pasada de
                                  //forma indefinida
            GregorianCalendar gcHora=new GregorianCalendar();
//objeto que nos
                                                                                                                           //dara la hora
                    

            hora=gcHora.get(Calendar.HOUR)+":"           //obtiene ora, se concatena :
                     +gcHora.get(Calendar.MINUTE)+":"       //obtiene minutos, se concatena :
                     +gcHora.get(Calendar.SECOND)+":"      
//.....
                     +gcHora.get(Calendar.MILLISECOND);
//......
           
            if (gcHora.get(Calendar.AM_PM)==0){
//identifica si el am o pm segun el
                                                                                      //retorno de calendar.AM_PM
                hora=hora+" a.m.";
//se concatena el am o pm segun el caso
            }else{
                hora=hora+" p.m.";//........
            }
            jLhora.setText(hora);
//se imprime la hora en label
        }
    }


ahora bien, crear el hilo

Thread mc=new Thread(this);// importante poner this para indicar al form al  
                                                            //que se aplicara el hilo


y  por ultimo poner las instrucciones correspondientes a los botones.

Boton iniciar:

private void jBinicioActionPerformed(java.awt.event.ActionEvent evt) {                                        
    mc.start();
}

Boton pausar:

private void jBpausarActionPerformed(java.awt.event.ActionEvent evt) {                                        
    mc.suspend();
}

Boton reanudar:

private void jBreanudarActionPerformed(java.awt.event.ActionEvent evt) {                                          
    mc.resume();
}

Boton detener:

private void jBdetenerActionPerformed(java.awt.event.ActionEvent evt) {                                         
    mc.stop();jLhora.setText("");
}



y asi se ve corriendo...




by: Puc Poot Fco
con colaboracion de los mejorcito del cerrito:
Emilio Guzman Tun







3 comentarios: