Thread.sleep

3 respostas
jhavaiano
> estou com um probleminha.... o sleep esta sendo executado em meu programa quando chamo o metodo: run(3000);
    como se trata de um jogo da memoria, era para virar as duas cartas, compara-las e sendo verdadeiro a comparacao as duas
    cartas sao desabilitadas, sendo falso as duas cartas serao "viradas" novamente, mas ao inves de mostrar as duas imagens do
    JButton e virar quando for falsa, está acontecendo de comparar muito rapido e antes de virar a segunda carta as duas ja sao 
    viradas... como fazer pra chamar o sleep no lugar certo e ele mostrar as duas imagem e depois desvirar! 


   valeu!!

3 Respostas

T

Para esperar 3 segundos, você precisa usar Thread.sleep (3000) (porque o tempo é em milissegundos).

Mas seu problema é outro; você precisa usar um javax.swing.Timer para resolver mais facilmente esse problema. É que se você simplesmente virar as cartas, der um Thread.sleep e depois desvirar as cartas, o Java simplesmente acaba só esperando os 3 segundos e mostrando as cartas desviradas. Se você usar um timer, esse problema desaparece.

lucas_carvalho100

Cara posta o código, sem ele é complicado ajudar…

jhavaiano
Segue o codigo para melhor compreensao da minha duvida!!          


public void actionPerformed (ActionEvent ev){
             contador+=1;
           
                    Object comp = ev.getSource();      
  
                     //Converte o evento em objeto , para que possamos manipular

                           if(comp==button1) {
                               button1.setIcon(new ImageIcon("src/jhavaianos/linux1.jpg"));
                               id=1;
                          }
                           
                                                                                     
       if (cont==1){
         botao1=(JButton) comp;
         id1=id;
         cont=2;
        }else { if(id==id1){
               botao1.setEnabled(false);
               botao=(JButton)comp;      
               botao.setEnabled(false);                 
                 cont=1;
                 fim+=1;
             }else  {                
                     botao=(JButton)comp;
                     botao1.setIcon(new ImageIcon("src/jhavaianos/botao.jpg"));                                         
                     botao.setIcon(new ImageIcon("src/jhavaianos/botao.jpg"));                
                     cont=1;               
                     }
Criado 8 de junho de 2010
Ultima resposta 8 de jun. de 2010
Respostas 3
Participantes 3