estoy intentando diseñar un componente es un clock y bueno consigo que me salga pero no se va actualizando la hora y no sé porque, no tengo muchos conocimientos de java yo pongo repaint update etc y veo que eso no funciona, asi que pongo aqui mi codigo y haber si pueden ayudarme
 
 
import java.awt.*;
 
import java.io.*;
 
import java.text.*;
 
import java.util.*;
 
public class clock2 extends Panel implements Runnable, Serializable
 
{
Calendar calendario = new GregorianCalendar();
public TextField chron;
 
private transient Thread thread;
int hora, minutos, segundos;
 
String formato;
 
    public String getFormato() {
        return formato;
    }
 
    public void setFormato(String formato) {
        if ( formato.equals("24 Horas")|| formato.equals("12 Horas") )
        this.formato = formato;
    }
        public void setText(String text)
    {
        switch (formato) {
            case "12 Horas":
                try{
 
                   chron.setText(calendario.get(Calendar.HOUR_OF_DAY) + ":" + calendario.get(calendario.MINUTE) + ":" +calendario.get(calendario.SECOND)); 
                   chron.repaint();
                }catch (NumberFormatException e)
                {
 
                }
                break;
            case "24 Horas":
                try{
                  chron.setText(calendario.get(Calendar.HOUR) + ":" + calendario.get(calendario.MINUTE) + ":" +calendario.get(calendario.SECOND));
                  chron.repaint();
 
                }catch (NumberFormatException e)
                {
 
                }
                break;
        }
 
    }
public clock2()
 
{
 
chron=new TextField(" ",6);
 
add(chron);
 
StartThread();
 
}
 
private void StartThread()
 
{
 
thread=new Thread(this);
 
thread.start();
 
}
 
public void run()
 
{
 
try
 
{
 
 
while(true)
 
{
 
Thread.sleep(1000);
chron.repaint();
chron.setText(calendario.get(Calendar.HOUR_OF_DAY) + ":" + calendario.get(calendario.MINUTE) + ":" +calendario.get(calendario.SECOND));
chron.repaint();
}
 
}
 
catch(Exception ex)
 
{
 
ex.printStackTrace();
 
}
 
}
 
private void readobject(ObjectInputStream ois)throws IOException,ClassNotFoundException
 
{
 
try
 
{
 
ois.defaultReadObject();
 
StartThread();
 
}
 
catch(Exception ex)
 
{
 
ex.printStackTrace();
 
}
 
}
 
} 
   
 


