O problema aqui é o seguinte:

O método void update(Graphics g) é implementado da seguinte maneira:

-> Primeiro LIMPA A TELA
-> Depois chama paint(g);

o que é horrível para animações. Numa animação você só quer redesenhar a 
área que está mudando e não todo o resto.

De um override no metodo update para ele não apagar a tela:

void update(Graphics g) { paint(g); }

e veja se as coisas melhoram.

No meu caso ajudou bastante.

[]'s

Sergio




>From: "Eduardo de S. Bernardino" <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: <[EMAIL PROTECTED]>
>Subject: Re: [java-list] Animação em Java
>Date: Thu, 3 May 2001 12:09:40 -0300
>
>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]
>-------------------------------------------------------------------------
>

_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.


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