Caros Colegas da Lista,
 
não estou conseguindo realizar uma tarefa que ao meu ver parece simples.
A descrição do problema é a seginte:
 
Neste código descrito abaixo, quando o meu método GenerateImage é chamado, ele chama o método repaint(), o qual é executado n vezes. A função deste método é gerar várias imagens na tela do meu software de forma que o usuário possa ver as imagens uma a uma durante a geração das mesmas. Estas imagens, em conjunto, irão formar uma animação. Porém, o que está acontecendo é que ao invés de executar um repaint de cada imagem o meu programa só exibe ao usuário o último frame. É como se ele estivesse executando o loop sem esperar pela geração das imagens.
 
A minha dúvida é como sequenciar o meu loop de maneira que eu consiga visualizar todos os frames.
 

class Main{
     ImageGenerator Image = new ImageGenerator( );
     ............
     for( frame=1 ; frame<10 ; frame++ )
     {
              Image.GenerateImage(frame);
              Texture.Animation(frame);
     }
}

class ImageGenerator extends Canvas{
     ImageGenerator( )
     {
     }

     GenerateImage(int frame)
     {
          //here is the problem. The repaint( ) method is called but not
          //executed, excepted when (frame==10) (the last frame of the
animation)
          repaint( );
     }
     paint( )
     {
              //generate each MxN pixels of the image
             //print then on the screen
             //save then on a matrix wich will be saved to a file
     }
}

 
Obrigado pela ajuda.
 
Ricardo.

Responder a