Atualizando um JPanel

Pessoal, criei um programa no NETBEANS usando um JPanel para que eu possa desenhar nele. O desenho que eu quero fazer é um quadrado na tela que vai mudando de cor (vermelho, verde, preto). Até aí tudo bem, eu criei o JPanel, criei o botão e fiz ele desenhar o quadrado na cor branca na tela. Quando eu clico no botão eu troco a cor do objeto, do um repaint e faço um sleep para ele esperar 15 segundos, depois redesenho o quadrado com a cor verde e espero um tempo e desenho ele na cor preta, mas mesmo colocando o repaint ele não atualiza a tela entre as trocas de cores, ele só vai atualizar a cor do objeto (redesenhar a tela) quando ele termina de executar toda a ação do botão.

Como eu faço para que ele redesenhe a tela no meio da ação do botão? Alguém já passou por isso?

Abraços,
Marcos Echevarria

Pô pessoal, será que alguém pode me ajudar? Ouvi falar que pode ser algum buffer que eu tenho q mandar ele limpar, mas o que seria isso?

Estou precisando para o meu projeto de graduação na faculdade.

Abraços,