Bonjour à tous,

j’en parlais la semaine passée, j’ai repris le développement d’interfaces en Swing pour Java car je vais bientôt être amené à l’utiliser pour mes études.

Je me suis donc intéressé aux animations et comment faire quelque chose de dynamique avec une évolution et pas seulement une fenêtre avec quelques boutons fixes.

Une fois mon code mis en place quelle fut ma stupeur lorsque j’ai découvert que l’animation n’affiche pas correctement toutes les frames alors qu’elles étaient générées dans les temps et le processeur / CGU étaient loin d’être utilisé à leur maximum. Après avoir cherché pendant longtemps j’ai trouvé solution à mon problème et cela se résout en une seule ligne.

Voici le rendu de l’animation avant (Avec les problèmes d’affichages) :

vidéo du rendu sans utilisation de Toolkit.getDefaultToolkit().sync();

Et voilà le rendu après :

vidéo du rendu avec utilisation de Toolkit.getDefaultToolkit().sync();

Pour obtenir un rendu sans saut de frame il faut que vous ajoutiez :

Toolkit.getDefaultToolkit().sync();

après votre repaint();

Et bien sur aussi importer la classe nécessaire en début de code :

import java.awt.Toolkit;


J’espère que cette solution résoudra votre problème.

Si vous avez des questions n’hésitez pas à me contacter par mail ou poster un commentaire.