ENIGMAS DA PAUSA "O RETORNO"

Oi pessoal!
Preciso de ajuda se vocês tiverem tempo para mim!

Ainda não terminei o jogo da memória…
Segui aquela dica de pausa de tempo: Thread.sleep(5000);
Pausou sim!
Esta pausa serviria para quando o usuário errasse as imagens,
ele tivesse um tempinho de 5 segundos para memorizar as posições
das imagens no jogo.

Só que agora a aplicação deixa de concluir comandos
de eventos de botão que vem antes desta pausa.
Por exemplo: O usuário clica num botão e aparece a imagem dentro
do botão depois ele clica num segundo botão para ver se as imagens
dos botões coincidem para acertar no jogo da memória.
Só que mal o usuário clica no segundo botão e a função de pausa já
é executada e o usuário não chega a ver a imagem do outro botão.

Por que eu criei logo em seguida da pausa uma instrução para apagar
as imagens dos botões caso as imagens não fossem iguais.
O que eu quero dizer é que o botão fica num estado de pressionado,
mas não chega a exibir a imagem, pois quando é executado a pausa,
o botão fica como se estivesse pressionado e não consegue exibir
a imagem e quando vai exibir, já chega a hora de apagar a imagem.
Não sei se fui clara, então vou esboçar…

-> public void ActionListener do botao (ActionEvent event) {
->botaoClicado.exibeImagem(imagem);
SE (é um segundo botão a ser clicado) {
SE (imagem do botao for diferente da imagem do botao clicado anteriormente) {
->Pausa o jogo por 5 segundos;
->E então apague as imagens dos 2 botoes clicado
}fim SE
}fim SE
}fim ActionListener

De acordo com o pseudo-código, a instrução do segundo botão clicado:
->botaoClicado.exibeImagem(imagem);
Parece ocorrer a exibição da imagem do botão na TEORIA!
Mas na PRÁTICA quando pressiono o botão e solto ele fica no estado de
pressionado no momento da pausa, que depois que termina já executa
a instrução de apagar antes de exibir a imagem, e olha que as imagens
têm entre 5 KB a 19 KB. Daria tempo de exibir antes de apagar…

SERÁ QUE TEREI QUE FAZER UM JOGO DA MEMÓRIA SEM IMAGEM E SIM COM LETRAS
E NÚMEROS!!!nããããõooo!!!
Ao invés de colocar icone nos botões terei que colocar letras:
botao.setText(“A”);
Não vai ficar legal!!!

VOCÊ PODE ME AJUDAR??? :?:

Tente criar um Thread só pra exibir a imagem, ou seja, no método botaoClicado.exibeImagem(imagem); instancie um thread que exiba a imagem.
Não é a solução ideal mas acho q funciona.
Espero ter ajudado.

flw.

Bom, os erros que já presenciei quanto a pressionamento permanente do botão acontecia ou por causa de um loop infinito ou por indefinição do que o botão deveria fazer exatamente… A classe que trata o evento dos botões está correta?

Jogo de memória… Deve estar dando um trabalhão, né?

Athena…

acho que vc tem q usar o MouseListener no seu tratador, pois essa interface tem métodos que escutam o clicar e o soltar do mouse… é mais precisa…
n sei se isso ajuda mas ta aí a dica…

t+

Sem o código fica meio difícil adivinhar, mas:

Você tem certeza que no segundo clique o seu aplicativo está “ouvindo” o segundo botão e não o primeiro?

Experimente colocar “comentários debugadores” no meio do seu código (tipo System.out.println(“verificado que as 2 figuras são iguais”);).

Se nada disso funcionar coloque esse trecho do código para gente dar uma olhada.