-
Boucle getValue Renderer
Bonjour à tous,
J'ai un petit problème. Mon programme boucle sur le getValue d'une JTable redéfinit, et je pense que cela vient du Renderer (qui est également redéfinit). Lorsque j'affiche la jtable à l'écran le getValue s'execute en boucle (j'ai mis un System.out pour afficher un message), et lorsque je la masque avec un SplitPane la méthode n'est plus appelé.
J'ai essayé de retirer mes Renderer mais sans succés.
Je ne vois pas d'où peut venir le problème.
La boucle ne me bloque pas l'application, donc en soit ce n'est pas génant, mais je ne veux pas laisser ça.
Si quelqu'un a une petite idée ou un soupçon, je suis preneur.
-
-
Salut,
Oui c'est sur mais à quel niveau à ton avis ?
Parce que j'ai beau chercher, que se soit dans le code ou hors, je ne trouve pas.
-
la boucle ne bloque pas l'application -> en quoi c'est une boucle infinie alors?
JTable appelle getValue dès qu'il a besoin de redessiner l'un ou l'autre élément, et ça passe par le renderer le dessin. Si ta JTable se redessine en permanence, c'est que quelque chose lui dit en permanence qu'il faut se redessiner.
T'aurais pas fait un appel à repaint sur le JTable dans le renderer par hasard??
-
Salut tchize_,
C'est une "boucle infinie" car j'ai un system.out.println("getValue") dans le getValue et ce message est écrit en boucle, mais mon programme fonctionne je peux continuer à utiliser mon programme.
En mode debogage c'est une methode de la classe JTable.class qui appel mon getValue (je ne peux pas voir les méthodes présentent dans JTable.class, problème de chemin de ressources).
Je n'utilise pas de méthode de rafraichissement dans les renderer. De plus j'ai essayé sans les renderer mais idem.
Donc vous confirmez que c'est une erreur de prog, je vais me taper le code.
Merci à vous :ccool:
-
Ok j'ai résolu le problème. J'avais placé un repaint() dans le paintComponent() de ma fenêtre :oops:
Merci à vous :ccool: