Olá pessoal…
É o seguinte…Tenho uma classe que extende um JPanel que é construída a partir de um contunto de Objetos Ponto (quan guardam uma cor e um par de coordenadas cartezianas). Essa classe implementa Runnable.
Minha idéia é ter uma BufferedImage e, nela, ir plotando os pontos aleatoriamente. A cada novo ponto plotado nela eu queria redesenhá-la no meu JPanel…
A seguir, segue o código da classe:
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.ArrayList;
import java.util.Collections;
import java.awt.image.BufferedImage;
public class PainelAnima extends JPanel implements Runnable
{
private IO io;
private ArrayList<Ponto> pontosOriginais;
private ArrayList<Ponto> pontosAPlotar;
private Thread anima;
private int largura;
private int altura;
private int diametroDoPincel;
private BufferedImage imagem;
public PainelAnima(ArrayList pontosOriginais,int largura, int altura, int diametroDoPincel)throws Exception
{
this.pontosOriginais = pontosOriginais;
this.pontosAPlotar = new ArrayList();
this.imagem = new BufferedImage(largura, altura, BufferedImage.TYPE_INT_BGR );
this.largura = largura;
this.altura = altura;
this.diametroDoPincel = diametroDoPincel;
(imagem.getGraphics()).setColor(new Color(0,0,0));
(imagem.getGraphics()).fillRect(0,0,largura+10,altura+10);
anima = new Thread(this,"anima");
anima.start();
}
public void run()
{
while(true)
{
if(pontosAPlotar.isEmpty())
{
for(int i=0;i<pontosOriginais.size();i++)
{
pontosAPlotar.add((pontosOriginais.get(i)).clonar());
}
Collections.shuffle(pontosAPlotar);
}
else
{
plotarPonto(pontosAPlotar.get(0));
pontosAPlotar.remove(0);
this.repaint();
}
try
{
Thread.sleep(10);
}
catch(Exception ex)
{
}
}
}
private void plotarPonto(Ponto ponto)
{
(imagem.getGraphics()).setColor(ponto.getCor());
(imagem.getGraphics()).fillOval(ponto.getX(),ponto.getY(),diametroDoPincel,diametroDoPincel);
//System.out.println("plotando ponto ["+ponto.getX()+","+ponto.getY()+"]");
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawImage(imagem,0,0,null);
}
}
Todavia, eu starto a aplicação, abro uma instância desa minha classe dentro de um JFrame e a única coisa que aparece é o fundo branco, mais nada…
Alguém saberia me dizer onde foi que eu errei?
Desde já agradeço…
