Pregunta

Hola, tengo un jpanel para dibujar. A partir de este jpanel, hago BufferedImages y las asombré en una lista de Linked. En un botón, presione, quiero animar este bufferedImages (reproducir uno tras uno), el problema es que el jpanel no muestra las imágenes buffered, pero cuando uso imageio.write para proteger los bufferedimages en el disco, obtengo todas las imágenes que quiero animar. por favor ayúdame.

Aquí está mi código:

public void run(){
 for(int i=0;i`<`cm.animationListe.size();i++){
      b= cm.animationListe.get(i);

      try {
            ImageIO.write( b, "png", new File( "c:/java/circle"+i+".png" ) );

        } catch (IOException e1) {
            e1.printStackTrace();
        }
     try {
            Thread.sleep(1000);
             repaint();

        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }}
 animation = false;
}

public void paintComponent(Graphics g){
  super.paintComponent(g);
  if(animation){
          g.drawImage(b,0, 0,null);
      } 
}
¿Fue útil?

Solución

El hilo.sleep () hace que la GUI se congele para que no pueda volver a pintar.

Para hacer animación necesitas usar un swing Temporizador.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top