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

Responder a