Salve a tutti
Ho fatto una ricerca sul forum (Google) e l'argomento è stato trattato in un topic che però è andato perdendosi...quindi vorrei riaprire la discussione (spero di non errare ) per chi come me si avvicina all'animazione in Java.

Veniamo al dunque...da qualche giorno sto trattando con la GUI. Roba molto semplice...giusto per prendere confidenza con i comandi [Per intenderci l'ultimo programmino che ho fatto creava al click del mouse delle forme casuali (casuale era il colore, la dimensione e la posizione)].

Ora vorrei fare il passo successivo ossia l'animazione...quindi l'utilizzo di trasformazioni affini. Vorrei partire da un concetto semplice come quello di far muovere un cubetto in un frame. Ho cercato qualcosa in rete (ho anche riesumato dispense di un mio professore) ma il materiale nn mi aiuta a capire le basi...

comunque questa è l'impostazione da cui parto...

codice:
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;

public class Spostamento extends JPanel implements KeyListener {

	
	public static void main(String[] args) {
		JFrame f = new JFrame();
		f.setTitle("Prova di Animazione");
		f.setSize(500,500);
		f.setResizable(false);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Spostamento p = new Spostamento();
		f.getContentPane().add(p);
		f.addKeyListener(p);
        
		f.setVisible(true);
	}

	public void paint (Graphics g){
		super.paint(g);
		Graphics2D g2 = (Graphics2D) g;
		g2.fillRect(... , ... , 100, 100);
	}


	public void keyPressed(KeyEvent arg0) {
		
		
	}
	
}
L'idea era di gestire il movimento nel metodo keyPressed (giusto no?) in modo tale che il metodo paint si occupi soltanto del disegno della formina. Ma avrei qualche domanda...

1- Nel metodo keyPressed devo gestire una trasformazione affine. Quindi avrò bisogno di un oggetto Graphics2D...ma credo di non aver capito come istanziarlo

2 - Quando disegno l'oggetto devo dare anche la locazione x e y (al posto dei puntini nel codice)...ma se lo sposto come faccio? stavo pensando semmai di spostare l'origine al centro del cubetto ogni volta che esegue un movimento e impostare in pain le coordinate x=0 e y=0 in modo tale di non fare pasticci o no?

Grazie in anticipo