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();
}
}
}