I am trying to simply rotate an image in a for loop like so:
class MyCanvas extends JComponent {
AffineTransform identity = new AffineTransform();
Image arrow;
Double angle = -180.0;
public void spin() {
    angle += 10.0;
    for(int i = 0; i < 10; i++) {
        repaint();
        System.out.println(i);
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
public void paint(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    arrow = Toolkit.getDefaultToolkit().getImage("red-arrow-right-th.png");
    // Rotate + translate
    AffineTransform trans = new AffineTransform();
    trans.setTransform(identity);
    trans.translate(getWidth()/2, getHeight()/2);
    trans.rotate(Math.toRadians(angle));
    System.out.println(trans);
    g2.drawImage(arrow, trans, this);
    g2.finalize();
}
}
However when I run call spin() in main, it appears to apply only a single rotation, whilst still printing out the loop correctly. What am I overlooking something?
 
     
    