Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/05/2012, 08:09
GUST_UNAD
 
Fecha de Ingreso: abril-2009
Ubicación: Bogota
Mensajes: 18
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta Mostrar hora en varios form

Cordial saludo a todos.
Agradezco la ayuda que me puedan dar soy novato, mi problema es el sgte:
Tengo que mostrar en varios formularios de una aplicación la hora en tiempo real, tengo una clase Reloj (que encontre en la red) para poder crear un objeto Reloj en cada formulario y me muestre la hora, lo que pasa es que al cargar el form a lo mucho me muestra la hora que tiene en ese momento y no la actualiza.
Alguien me puede decir como puedo hacer para que se me actualice la hora en el formulario que se abra.
Coloco la clase:
package Utilities;

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

/**
*
* @author Gust
*/
public class Reloj implements Runnable{
//variables a nivel de clase
String hora, minutos, segundos, ampm;
Calendar calendario; //Este objeto nos ayudará a realizar las operaciones necesarias con las horas.
Thread h1; //actualizara la hora en tiempo real.
String strHora;

public Reloj()
{
h1 = new Thread(this);
h1.start();
}

public void calcula() //Aca se realizan los cálculos de la hora
{
Calendar calendario = new GregorianCalendar();
Date fechaHoraActual = new Date();

calendario.setTime(fechaHoraActual);
ampm = calendario.get(Calendar.AM_PM) == Calendar.AM?"AM":"PM";

if(ampm.equals("PM"))
{
int h = calendario.get(Calendar.HOUR_OF_DAY)-12;
hora = h > 9?""+h:"0"+h;
}

else
{
hora = calendario.get(Calendar.HOUR_OF_DAY)>9?""+ calendario.get(Calendar.HOUR_OF_DAY):"0"+calendari o.get(Calendar.HOUR_OF_DAY);
}
minutos = calendario.get(Calendar.MINUTE)>9?""+calendario.ge t(Calendar.MINUTE):"0"+calendario.get(Calendar.MIN UTE);
segundos = calendario.get(Calendar.SECOND)>9?""+calendario.ge t(Calendar.SECOND):"0"+calendario.get(Calendar.SEC OND);
}


public void run() {

Thread ct = Thread.currentThread();
while(ct == h1)
{
calcula();
strHora = hora + ":" + minutos + ":" + segundos + " " + ampm;
try{
Thread.sleep(1000);
}catch(InterruptedException e)
{

}
}
}

public String getHora()
{
return strHora;
}
}

Alguien me puede decir que debo hacer el nuevo form o en esta clase para pasar esta hora y que se me actualice en tiempo real ?

De ante mano muchas gracias por su tiempo y conocimiento