Bonjour, voila un problème que je retrouve souvent et auquel je ne trouve pas de solution. J'ai l'impression que la méthode paint, ou repaint est threadée. Le terme n'est surement pas correct mais je ne sais pas comment appeler ce phénomène.
Voici un exemple:
Le problème est que end est déjà a true lors du test if(!end)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 public void unemethode(){ repaint(); end= true; } public void paint(Graphics g){ g.draw....... ...... g.draw....... if (!end){//dessin de ma figure g.draw... g.draw... } }
Résultat, ma figure n'est pas tracée. Alors que dans le principe, end ne devrait être à true qu'aprés que repaint() se termine....
Bref, je ne sais pas du tout comment résoudre ce problème.
J'ai déjà essayé les synchronized de repaint et paint, mais ca ne change rien et d'ailleurs à cause de ca je n'arrive pas à comprendre ce qui se passe.
Si quelqu'un peut m'espliquer ce qui se passe dans le détail et comment résoudre le problème de façon propre...
Merci d'avance.
Partager