Guten Morgen!
Seit gestern Abend versuche ich eine Animation mit einem Thread auf den Bildschirm zu zaubern, aber irgendwie wird die repaint-Methode nicht mehr ausgeführt, der Thread läuft aber vernünftig durch, wie mir println() zeigt!
Hier der Code:

1. Test_main.java -> Hauptklasse
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Test_main
{
  public Test_main()
  {

  }

  public static void main(String[] args)
  {
    Test_under frame = new Test_under("Test");
  }
}
2. Test_under.java -> geerbtes JFrame -> von hier aus wird der Thread gestartet
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Test_under extends JFrame
{
  public Test_under(String title)
  {
    super(title);
    addWindowListener(new WindowAdapter()
    {
      public void windowClosing(WindowEvent evt)
      {
        System.exit(0);
      }
    });

    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int frameWidth = 250;
    int frameHeight = 250;
    setBounds(((d.width / 2) - (frameWidth / 2)) , ((d.height / 2) - (frameHeight / 2)) , frameWidth , frameHeight);

    Container cp = getContentPane();
    cp.setLayout(null);

    Test_panel panel = new Test_panel();
    cp.add(panel);

    setResizable(false);
    setVisible(true);
    
    Test_panel.startIntro();
  }
}
3. Test_panel.java -> geerbtes JPanel -> hier ist der Thread mit der repaint()-Funktion
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Test_panel extends JPanel implements Runnable
{
  int x = 0;
  int y = 0;

  public Test_panel()
  {
    setBounds(0 , 0 , 244 , 218);
    setBackground(Color.WHITE);
    setVisible(true);
  }

  public static void startIntro()
  {
    Thread intro = new Thread(new Test_panel());
    intro.start();
  }

  public void run()
  {
    for(int i = 0 ; i <= 100 ; i++)
    {
      x = i;
      y = (i / 2);

      repaint();

      System.out.println(i);

      try
      {
        Thread.sleep(100);
      }
      catch (InterruptedException e){}
    }
  }

  public void paint(Graphics g)
  {
    super.paint(g);
    
    g.drawRect(((244 / 2) - (x / 2)) , ((218 / 2) - (y / 2)) , x , y);
  }
}

Vielleicht kann mir ja jemand weiterhelfen!?

Danke für eure Mühe!
Viele Grüße
Florian