ciao a tutti, devo fare un programmino in cui c'è un loop di 5 immagini raffiguranti le varie fasi di corsa di un maratoneta che deve andare da sinistra a destra dell'applet. Una volta arrivato alla fine, deve girarsi e correre da destra a sinistra dell'applet (quindi altre 5 immagini raffiguranti il corridore di prima, specchiato).
Nel codice che ho fatto, il corridore va avanti e indietro, però le immagini sono sempre le prime 5.

codice:
import java.applet.Applet;
import java.awt.image.*;
import java.awt.*;
import java.awt.Graphics.*; 
   
    public class Anim2Applet extends Applet {
        Image[] images = new Image[12];
        int frame=0, x,i;
        
        public void init() {
            x=1;
            i=1;
            
            if (i<=1){
            images[0] = getImage(getDocumentBase(), "Corridore0.jpg");
            images[1] = getImage(getDocumentBase(), "Corridore1.jpg"); 
            images[2] = getImage(getDocumentBase(), "Corridore2.jpg");
            images[3] = getImage(getDocumentBase(), "Corridore3.jpg");
            images[4] = getImage(getDocumentBase(), "Corridore4.jpg");
            images[5] = getImage(getDocumentBase(), "Corridore5.jpg");
        }
            else {
            images[0] = getImage(getDocumentBase(), "Corridore6.jpg");
            images[1] = getImage(getDocumentBase(), "Corridore7.jpg"); 
            images[2] = getImage(getDocumentBase(), "Corridore8.jpg");
            images[3] = getImage(getDocumentBase(), "Corridore9.jpg");
            images[4] = getImage(getDocumentBase(), "Corridore10.jpg");
            images[5] = getImage(getDocumentBase(), "Corridore11.jpg");
        }
            setBackground(Color.white);
            
        }    
      
        public void paint(Graphics g) {
            
            if (x>=getSize().width-107) ++i; 
            if (x<=0) --i;
            if (i<=1) x=x+15;
            else x=x-15;
           
            Graphics2D g2 = (Graphics2D)g;
            g2.drawImage(images[frame], x, 100, this);       
            try { Thread.sleep(300);
            }
            catch (InterruptedException e) {}
            frame = (frame+1)%images.length; 
            repaint();
        
        }
    }
Aiutatemi perchè non so proprio come fare