Timing con animación Swing

Tengo algunos problemas con Swing y animo un personaje, tengo un JFrame con un oyente clave y cuando el usuario pulsa, llama a mi método JPanel aquí

for(int i=1;i<4;i++)
{           
    pY+=16;
    g.drawImage(perso,pX,pY,pX+50,pY+50,0+50*i,0,50+50*i,50,this 
    this.repaint();                 
}

Esto anima a mi personaje pero tan rápido que podemos ver una cosa, ¿cómo puedo hacer para ver la animación?

Respuestas a la pregunta(3)

Su respuesta a la pregunta