Gerando animação com java

2 respostas
P

Galera eu tenho uma sequencia de imagens e gostaria de fazer uma animação delas … e no final possibilitar que o usuario salve essa animação em sua maquina. Como posso fazer isso?

Obrigado

Paulo

2 Respostas

R

Pra fazer a animação, vc pode usar o repaint a cada nova figura…

ja, pra salvar a figura final… acho dificil… algo tipo um print screen poderia resolver…

[]'s

M
Salvar não sei como fazer, mas pra fazer a animação olhe o código abaixo, tinha uma bola se movendo junto, mas tirei para o codigo ficar menor, por isso dos nomes terem "Bola" também.... 7 figuras fazendo a animação...
import java.awt.*;
import java.awt.event.*;

//Java extension packages
import javax.swing.*;

public class PainelFigura extends JPanel implements ActionListener {

	protected ImageIcon imagens[];      
	protected int totalImagens =6 ,imagemAtual = 0;              
	protected String imagem = "Frame_";  
	protected Timer timer;  

	public PainelFigura(){
		inicializar();
		this.start(); 
	}
	protected void inicializar(){
		imagens = new ImageIcon[ totalImagens ];
		for ( int count = 0; count < imagens.length; ++count )
			imagens[ count ] = new ImageIcon( getClass().getResource(
					"images/" + imagem + count + ".gif" ) );
		}

	public void paintComponent( Graphics g ){
		super.paintComponent( g );
		imagens[ imagemAtual ].paintIcon( this, g, 0, 0 );
		imagemAtual = ( imagemAtual + 1 ) % totalImagens;
	}
	public void actionPerformed( ActionEvent actionEvent )	{
		repaint();  
	}
	public void start()	{
		if ( timer == null ) {
			imagemAtual = 0;  
			timer = new Timer( 50, this );
			timer.start();
		}
		else  
			if ( ! timer.isRunning() )
				timer.restart();
	}
	public Dimension getPreferredSize()
	{
		return new Dimension( 200, 200 );
	}
}
import javax.swing.*;
import java.awt.*;

class BolaFigura extends JFrame {
   
  PainelFigura painel2;
  public BolaFigura() {
   
  	super();
    painel2 = new PainelFigura();
   
    JPanel contentPane = new JPanel();
    JPanel contentPane1 = new JPanel();
    contentPane1.add(painel2, BorderLayout.CENTER);
    contentPane.setLayout(new BorderLayout());
    contentPane.setPreferredSize(new Dimension(510, 530));
    contentPane.add(contentPane1, BorderLayout.NORTH);
    setContentPane(contentPane);
    
  }

  public static void main(String[] args) {
  	BolaFigura bolaFigura = new BolaFigura();
   	bolaFigura.setSize(250,250);
  	bolaFigura.setVisible(true);
  	bolaFigura.setLocation(150,0);
  }
}
Criado 8 de julho de 2005
Ultima resposta 9 de jul. de 2005
Respostas 2
Participantes 3