Hej,

Przerzuciłem się na rysowanie grafiki 2d poprzez dodawanie i rysowanie figur z wykorzystaniem ArrayList. Problem polega w tym, że nie wiem dlaczego figury rysowane z ArrayList nie poruszają się, mimo, że współrzędne są aktualizowane. Moglibyście zerknąć na kod poniżej i zasugerować co robię nie tak lub czego jeszcze brakuje? Poza tym czy w poprawny sposób używam Timera? Czy strukturalnie powinienem to inaczej poukładać?

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Ellipse2D.Double;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;

public class Grap extends JPanel implements ActionListener {
	Timer t = new Timer(5, this);
	double x = 100, y = 100;
	
	ArrayList<Shape> shapes = new ArrayList<Shape>();
	
	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		Graphics2D g2 = (Graphics2D) g;
		
		for(Shape r: shapes) {
			
			g2.draw(r);
		}
		
		t.start();
	}
	
	public Grap() {
		
		JFrame f = new JFrame();
		f.add(this);
		f.setVisible(true);
		f.setSize(500,500);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		Double circle2 = new Ellipse2D.Double(x, y, 40, 40);
		shapes.add(circle2);
		
	}	
	
	@Override
	public void actionPerformed(ActionEvent e) {
		
		x = x + 1;
		y = y + 1;
		
		repaint();
		
	}
	
	public static void main(String[] args) {
	
	 new Grap();
		
}}

Pozdrawiam