L'un des problèmes possibles avec les méthodes de dessin c'est que tu ne maîtrises pas toujours à quel moment elles sont appelées. En ce sens, si tu passes une variable à 1, le système va pas forcément savoir que ce changement de variable a un impact sur le dessin.
Un truc qui peut t'aider à valider cette hypothèse, c'est déjà au moment ou n == 1 d'essayer de déplacer ou réduire et restaurer la jFrame afin de forcer le système à redessiner.
Sinon, le truc qui dépanne, insérer dans paintcomponent, juste avant ton drawImage, un system.out.println("fonction de dessin appelée") pour être sûr que ta fonction est bien appelée. Déjà ça pour voir dans quel direction chercher