Como utilizar o componente Timer

Olá pessoal, estou desenvolvendo uma aplicação com swing, onde tenho um botão e quando este botão for clicado eu quero que meu label mostre um tempo de 30 segundos(comece em 30 e vá decrescendo) para o usuário, vi alguns exemplos, mas nao entendi muito bem, alguém poderia me dar uma sugestão? Obrigado.

2 jeitos…

ou usa a classe timer (pesquise sobre esta classe)

ou faça um for recursivo e coloca uma thread.sleep()

Vê se te ajuda…

http://www.cin.ufpe.br/~java/docs/tutorial/essential/threads/timer.html

Galera, valeu pela informação, dei uma olhada na API e tal, ai eu criei este método

public void labelRefresh(){
	    final long segundos = 30000;
	    final long tempo = 1000;
	    Timer timer = new Timer();
	    timer.scheduleAtFixedRate(new TimerTask() {
            public void run() {
                lblTempo.setText(Long.toString(segundos-tempo));
            }
        }, segundos, tempo);
	}

chamo ele no evento do meu botão, mas nao esta funcionando =/

Também tentei assim:

Timer t = new Timer();
        t.schedule(new TimerTask() {
        int i = 30;
            @Override
            public void run() {
               lblTempo.setText(Integer.toString(i--));
            }
        }, 1000, 1000);
	}

mas sem sucesso.