Atualizar valor de um JLabel a cada 1 segundo

Pessoal, estou tentando atualizar um valor de um JLabel a cada 1 segundo, porém não estou conseguindo. (obs: estou utilizando thread)

   public void t(String s) throws InterruptedException
  {
     lblAnimacao.setText(s);
     lblAnimacao.repaint();
  
     if (Thread.currentThread().interrupted())
        throw (new InterruptedException());
  
     Thread.currentThread().sleep(100);
  }  

esse é o código que estou utilizando.

Se eu insiro um JOptionPane.showMessageDialog após o método repaint(), funciona.

Alguém pode me ajudar?

Você precisa executar o código que atualiza a tela dentro da EventDispatchThread do sistema. Faça +/- assim:

EventQueue.invokeAndWait(new Runnable() {
   public void run() {
      label.setText(....);
   }
});

Esses exemplos implementam um exemplo de um reloginho, através da atualização de um JLabel.

O primeiro usando threads;
O segundo usando o timer do pacote util;
E o terceiro usando o timer do Swing.

A vantagem do terceiro é os eventos serão gerados na própria thread do swing, dispensando o EventQueue.invokeAndWait ou EventQueue.invokeLater.