Bonjour,

Pour faire une animation d'un JPanel descendant, j'ai un Timer avec pour action le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
setOpaque(false);
repaint(getVisibleRect());
setOpaque(true);
setSize(getWidth(), (getProgressInPercent() * getParent().getHeight()) / 100);
repaint();
Déjà ce code me plaît moyennement car je suis obligé de faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
setOpaque(false);
repaint(getVisibleRect());
setOpaque(true);
juste pour redessiner le composant parent sans le panel en question... On peut pas garder une trace du Graphics correspondant au composant parent avant l'ajout du fils et le faire dessiner quand on en a besoin ?

Enfin bref, ce n'est pas l'origine de mon post, voici mon problème :
le premier repaint ne fait strictement rien, alors que si à la place je mets
Code : Sélectionner tout - Visualiser dans une fenêtre à part
paintImmediately(getVisibleRect());
là ça fonctionne mais avec du clipping très désagréable

Donc j'aimerais bien savoir pourquoi le premier repaint marche pas

Si quelqu'un a une idée je suis tout ouïe !
Merci d'avance à tous ceux qui se pencheront sur mon problème !