Para applets com AWT funciona que � uma beleza o m�todo que voc�
especificou.
S� n�o sei se este exemplo que voc� mostra funciona. No Swing n�o sei se
funciona, mas tente sincronizar os m�todos com o synchronized, as vezes
funciona.

Eduardo

----- Original Message -----
From: "Sergio - InfoSa�de RS" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, May 03, 2001 11:59 AM
Subject: [java-list] Anima��o em Java


Bom dia !!

Gostaria de saber se algu�m de vcs j� implementou algum tipo de
anima��o em java e se conseguiu resolver aquele problema da tremedeira da
tela, por causa dos sucessivos repaint de tela. Tentei implementar uma
t�cnica que v� em um livro mas n�o tive muito sucesso. Eles chamavam a
t�cnica de buferriza��o dupla, que consiste nada mais nada menos que criar
uma outra inst�ncia de Graphics e pintar todos os objetos nela e depois
simplesmente pintar ao contexto da tua aplica��o aquela imagem criada em
background. A id�ia me pareceu �tima, s� que quando implementei n�o
funcionou, o programa compila normalmente s� que na hora da execu��o ele d�
erro de null pointer assingment.  Algu�m sabe o que pode ser ???  Tem a ver
com o exemplo ser implementado utilizando awt e extendendo applet, sendo que
eu estou usando swing e extendendo JFrame ???

Segue abaixo as partes relevantes do c�digo da minha classe:

import java.awt.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;

class RaceThread extends JFrame implements ActionListener{

JButton Inicia,Suspende,Para;
JPanel Baixo, Placar;
Bixo lebre, lebre2, lebre3, tart, tart2, tart3;

private Bixo Lugares [];
private int Posi [];
Image offscreenImg;
Graphics offscreen;
private Image ImgBg =
Toolkit.getDefaultToolkit().getImage("pista.jpg");

public RaceThread(){

super("Race Thread");

offscreenImg = createImage(size().width, size().height);
offscreen = offscreenImg.getGraphics();    //  a m�quina
virtual acusa o erro nessa linha

}


public void paint(Graphics g){
super.paint(g);
int pos = 100;
for(int i=0;i<15;i++){
offscreen.drawImage(ImgBg,pos,22,this);    // No
m�todo paint, todos os desenhos s�o feitos naquela inst�ncia de Graphics
criada na contrutora
pos+=54;
}

lebre.paint(offscreen);
lebre2.paint(offscreen);
lebre3.paint(offscreen);

tart.paint(offscreen);
tart2.paint(offscreen);
tart3.paint(offscreen);

g.drawImage(offscreenImg,0,0,this);   // Depois que tudo foi
pintado a� sim chama-se o paint para exibir a tela criada


}

}

------------------------------ 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]
-------------------------------------------------------------------------




------------------------------ 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