Repaint et autres tracas

wakarl_marx Messages postés 4 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 17 avril 2005 - 15 avril 2005 à 16:27
wakarl_marx Messages postés 4 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 17 avril 2005 - 17 avril 2005 à 14:50
bonjour a vous,
voila, j'ai un JPanel et une fonction ecouteClic qui me permet de dessiner des ronds et des croix dans le JPanel (passionant non?). Les coordonnes de ces cercles et carres sont stockes dans un objet pieton et chaque pieton ( un rond et un carre) est stocké dans une ListePieton.
Jusque la aucun probleme me direz-vous. Et bien si! lorsque qu'un repaint est effectué, seul mon dernier "pieton" (le dernier couple cercle-rond pour ceux du fond...) est reaffiché.
Je n'ai aucune idee de la maniere comment debloquer ca et c'est pour ca que je fais appel a vous. toute suggestion ou reponse est acceptee.
merci d'avance.

voici le code des morceaux concernes:

JPanel monPaneau:
public void paintComponent (Graphics g)
{
super.paintComponent(g);
if (Lpiet != null) //Lpiet, c'est ma liste de pietons. composee de monPietons
{ Lpiet.afficherListe(g,Lpiet); }
}

ListePieton:
public void afficherListe (Graphics g, ListePieton Last)
{
while (Last!=null)
{
Last.val.afficher(g); //val=>monPieton
Last=Last.next; //next => ListePieton
}
}

monPieton:
public void afficher(Graphics g)
/** this method displays monPieton in the graphic context given as parameter.*/
{
g.setColor(Color.red); //preview of the pedestrian.


g.fillOval (ToInt(PointDep.getX()),ToInt(PointDep.getY()),30,30);


g.setColor(Color.black);
g.drawRect(ToInt(PointAriv.getX()),ToInt(PointAriv.getY()),15,15);
}

encore merci d'avance.

2 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
17 avril 2005 à 14:32
Salut,



dsl mais le seul truc qui me saute aux yeux reste ton super.paintComponent(g);(hérité par JComponent)

pourquoi repaint qu'un seul composant???



à ta place j'utiliserai plus
super.paintComponents(g); (hérité par Container)

histoire de repaint vraiment tout le panel et les composants qu'il a



WORA
0
wakarl_marx Messages postés 4 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 17 avril 2005
17 avril 2005 à 14:50
bon finalement, j'ai trouvé mon erreur (humm toujours penser a ajouter la cellule qu'on cree dans une liste....)
merci quand meme pour le super.paintcomponents(g), ca pourra toujours me servir. Pour le moment je n'ai besoin de repeindre que mon JPanel donc ca devrais suffire.

merci d'avoir repondu
bonne journee

wakarl_marx.
0
Rejoignez-nous