Estoy tratando de crear un reloj digital usando un hilo, ya que me parece la forma lógica en que uno lo haría. No estoy seguro de si lo estoy haciendo bien pero lo que tenía en mente es crear la hora del sistema actual inicial utilizando el constructor de JFrame y mostrarlo como texto usando una etiqueta. En el constructor, entonces creo el objeto de hilo con el que actualizar la hora.Creación de reloj digital usando un hilo
Luchando un poco y esperaba algún consejo sobre cómo hacerlo bien.
setDefaultCloseOperation((JFrame.EXIT_ON_CLOSE));
setBounds(50, 50, 200, 200);
JPanel pane = new JPanel();
label = new JLabel();
//Font localTime = new Font("Lumina", Font.BOLD , 24);
pane.add(label);
add(pane);
sdf = new SimpleDateFormat("HH:mm:ss");
date = new Date();
s = sdf.format(date);
label.setText(s);
setVisible(true);
runner = new Thread(this);
while(runner == null)
{
runner = new Thread(this);
runner.start();
}
Este es entonces mi método run() para actualizar el reloj cada segundo.
public void run()
{
while(true)
{
try
{
Thread.sleep(1000);
sdf = new SimpleDateFormat("HH:mm:ss");
date = new Date();
s = sdf.format(date);
label.setText(s);
}
catch(Exception e){}
}
Método principal.
public static void main(String[] args)
{
new DigitalClock().setVisible(true);
}
¿Con qué estás luchando específicamente? También parece que el corredor nunca será nulo, ya que crea una instancia y le asigna un objeto Thread justo antes de su while (runner == null) check. Oh y +1 puramente por la rareza de ver una pregunta de tarea que se ha intentado antes de preguntar aquí :) –