Voc� deveria chamar o m�todo repaint atrav�s de outro m�todo, talvez assim 
(c�digo pouco elaborado e sem revis�o):

public class suaClasse extends Canvas implements Runnable
{
    public void run()
    {
>          try { // Espero meio segundo
>               Thread.sleep(500);
>          } catch (InterruptedException e) {
>               e.printStackTrace();
>          }
>          pos=pos+1; // Troco a substring dando a impressao
>          // de um texto que rola...
>          if(pos>fim-61)
>          {
>               pos=1;
>           }
>               repaint();
>           }
    }

    public void paint()
    {
     // seu c�digo sem o trecho que agora est� no run
    }
}

Espero que ajude.
[]'s
Emerson
At 13:56 26/11/2001, Fabio Oliveira wrote:
>Pessoal:
>
>Sou leigo em Java e estou precisando implementar uma pequena anima��o de 
>texto sobrepondo uma figura JPG sem aquele horrivel efeito piscante.
>Eu tentei criar o velho esquema de double_buffering, mas mesmo assim 
>continua piscando, n�o consigo entender.
>Toda vez que � chamado o m�todo repaint a imagem do fundo entra lentamente 
>(� um JPG de 640x480) no meu micro (Celeron 450).
>O que eu estou fazendo de errado ?
>Agrade�o a aten��o de todos.
>F�bio.
>
>M�todo Paint
>
>     public void paint(Graphics g) {
>         if(privez==1) // Na primeira vez eu crio o contexto gr�fico
>         {
>            privez=0;
>            // Cria buffer
>            buffer = createImage(640, 480);
>            // obtem e prepara contexto grafico associado
>            gContexto = buffer.getGraphics();
>            gContexto.setColor(Color.black);
>            gContexto.fillRect(0, 0, 640, 480);
>            gContexto.drawImage(logo,0,0,this); // Jpg 640x480
>         }
>
>         gContexto.setColor(Color.black);
>         gContexto.fillRect(0, 0, 640, 480);
>         gContexto.drawImage(logo,0,0,this);
>         String frase="";
>         frase=instru.substring(pos,pos+60);
>         gContexto.setFont(new Font("Serif",Font.BOLD,40));
>         gContexto.setColor(Color.blue);
>         gContexto.drawString(frase,10,440);
>         g.drawImage(buffer, getInsets().left, getInsets().top, this);
>          try { // Espero meio segundo
>               Thread.sleep(500);
>          } catch (InterruptedException e) {
>               e.printStackTrace();
>          }
>          pos=pos+1; // Troco a substring dando a impressao
>          // de um texto que rola...
>          if(pos>fim-61)
>          {
>               pos=1;
>           }
>               repaint();
>           }
>     }
>



------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a