Como fazer o programa esperar ate executar a proxima linha?

Bom pessoal,
Eu queria saber como faço para o programa esperar ate executar a próxima linha. Eu tenho uma imagem no meu JFrame e quando eu clico no botão era
para ocorrer tipo uma animação, pois a imagem muda de posição, só que acontece quase que instantaneamente, então eu gostaria que atrasasse a
movimentação da imagem para ficar visível a animação. Eu tentei usar o código abaixo:

try { Thread.currentThread().sleep(1000); } catch (InterruptedException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); }
Só que o que acontece é que o programa tipo “trava”(trava porque o botão que aperta para começar a animação fica “pressionado”) durante o tempo
da animação
(tipo se a animação era pra durar 5 segundos o programa “trava” durante 5 segundos) e depois desse tempo aparece o resultado final da animação.
Como posso fazer com que cada passo da animação ocorra ate o passo final?

Obrigado a quem poder ajudar.

É só usar um laço


for(int i = 0; i < 5; i ++) {
  // Faz um passo da animação
  try {
      Thread.currentThread().sleep(1000);
  } catch (InterruptedException ex) {
      Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
  }
}