Estou desenvolvendo um jogo da memória e preciso que ele mostre a imagem ao clicar num JButton, depois, ao clicar em outro JButton, mostre a imagem e verifique se as imagens são iguais. Se não forem mude para a imagem default. Só que ele mostra a primeira imagem e ao clicar em outro JButton ele, mostra muito rápido ou nem mostra, faz o teste e se não forem iguais ele muda para a imagem default.
só que não ta funcionando, ele dá um delay mas continua com o mesmo problema. Gostaria também de saber se existe algum comando que trave o JButton para eu não poder mais clicar nele.
OLHA PARA FAZERES O QUE ESTAS QUERENDO FAZER APENAS DEVES USAR OS EVENTOS CERTOS,
EM JAVA TEM MUITOS EVENTOS QUE PODEMOS UTILIZAR MUITOS MESMO QUE ATÉ NEM IMAGINAMOS O PODER QUE OS EVENTOS
PODEM NOS DAR.
OLHA VOU DAR UMA EXPLICADA DE ALGUNS EVENTOS PARA TE DAR UMAS IDEAS.
FAZ O SEGUINTE INVES DE USAR OS THREAD PODES USAR OS EVENTOS QUE AXO QUE VAI FICAR MAIS FACIL.
QUANDO SE CLICLAR NO SEGUNDO BOTAO NO EVENTO CLICLICK POE AS TUAS CONDICOES E FAZ O QUE TEM QUE FAZER
AGORA QUANDO O MOUSE ESTIVER A SAIR DO BOTAO( LOST FOCUS, MOUSE MOVE EXIT, OU ALGO PARECIDO) AI É NESTE MOMENTO QUE ELE DEVE MUDAR PARA A IMAGEM DEFAULT. ESTUDA MAIS OS EVENTOS E VERAS QUE MESMO SEM USAR OS THREAD PODERAS FAZER ISTO QUE
QUERES.
ABRAÇO :idea:
P
petruki
Dentro da classe onde você controla a troca das imagens crie uma classe interna que será uma Thread com o nome ex. (Contador).
No evento onde você direicionou o eventos de clique de todos os botões (opções) que provavelmente deverá fazer a comparação se a primeira imagem é igual a segunda imagem, caso não forem iguais, vc roda essa Thread. Basicamente seria mais ou menos isso:
Dessa forma, ele joga os valores dos botões para variaveis e incrementa o contador. Ele verifica as imagens após o segundo click. Só que a segunda imagem aparece muito rápido e não dá pra ver. Outra coisa que gostaria de saber é se existe algum metodo que trave o botão, que ele não seja mais clicado.
D
dragonyle
Resolvi o problema do travamento dos botões.
usei:
botao[0].setEnable(false);
ele deixa a imagem cinza, não fica muito legal mas pelomenos trava