Adicionar contagem num JButton

Olá galera, sou novo por aqui e já estou trazendo problemas rsrsrsrsrsrss.
É o seguinte estou fazendo um programinha que eu quero adicionar uma contagem regressiva no setText do JButton.
Tipo assim, quando o usuario clicar no botão, o mesmo botão fica inativo e começa uma contagem regressiva no setText do botão, até a contagem chegar a zero, ae o botão fica ativo novamente. Consequi criar a contagem mas não consigo colocar no botão.
Quando clicko no botão ele trava, a acontagem acontece mas eu não a vejo.

Desde já agradeço.

Crie um javax.swing.Timer que faça isso. Não use Thread.sleep que só irá travar seu botão.

Um exemplo boboca. Note que não uso nenhum Thread.sleep.

package guj;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.Timer;

public class TesteBotao extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JLabel lbl = null;
	private JPanel pnlButtons = null;
	private JButton btnContagemRegressiva = null;

	private JPanel getJPanel() {
		if (pnlButtons == null) {
			pnlButtons = new JPanel();
			pnlButtons.setLayout(new FlowLayout());
			pnlButtons.add(getJButton(), null);
		}
		return pnlButtons;
	}

	private JButton getJButton() {
		if (btnContagemRegressiva == null) {
			btnContagemRegressiva = new JButton();
			btnContagemRegressiva.setText("Botão");
			btnContagemRegressiva
					.addActionListener(new java.awt.event.ActionListener() {
						public void actionPerformed(java.awt.event.ActionEvent e) {
							btnContagemRegressiva.setEnabled(false);
							count = 10;
							btnContagemRegressiva.setText("" + count);
							timer = new Timer(1000, new ActionListener() {
								@Override
								public void actionPerformed(ActionEvent e) {
									count = count - 1;
									btnContagemRegressiva.setText("" + count);
									if (count <= 0) {
										timer.stop();
										btnContagemRegressiva.setEnabled(true);
									}
								}
							});
							timer.start();
						}
					});
		}
		return btnContagemRegressiva;
	}

	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				TesteBotao thisClass = new TesteBotao();
				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				thisClass.setVisible(true);
			}
		});
	}

	public TesteBotao() {
		super();
		initialize();
	}

	private void initialize() {
		this.setSize(300, 200);
		this.setContentPane(getJContentPane());
		this.setTitle("Teste de Contagem Regressiva");
	}

	private JPanel getJContentPane() {
		if (jContentPane == null) {
			lbl = new JLabel();
			lbl.setText("Contagem Regressiva");
			jContentPane = new JPanel();
			jContentPane.setLayout(new BorderLayout());
			jContentPane.add(lbl, BorderLayout.NORTH);
			jContentPane.add(getJPanel(), BorderLayout.SOUTH);
		}
		return jContentPane;
	}

	private int count;
	private Timer timer;
}

O BOBÃO Muito Obrigado deu tudo certo!!!
Um Abraço.