Bah c'est tout à fait normal, c'est pas le rôle du Canvas de se ouveir de ce qu'il à dessiné au coup précédent. C'est plutôt à toi de stocker les formes à dessiner à chaque fois que tu veux appeler le repaint();.
Donc grosso merdo dans ta classe tu as une collection qui stocke les formes à afficher et dans paint tu parcourres ta collection et fais un draw de la Shape voulue...
C'est pas sorcier...
Ah au fait dans ton appli évite de mélanger AWT et Swing. Si tu veux utiliser la classe Canvas, fais tout en AWT, si tu veux utiliser Swing remplace ton Canvas par un vulgaire JComponent ou JPanel dont tu redéfiniras la méthode
protected void paintComponent(Graphics g)
Partager