Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 2013
-
24 avril 2007 à 18:20
cs_Yenapa
Messages postés67Date d'inscriptionsamedi 12 juillet 2003StatutMembreDernière intervention26 juin 2009
-
26 avril 2007 à 11:50
Salut tous:
J'ai un objet JPopupMenu dans lequel j'affiche des objets instance de la classe JMenuItem je veux faire le ménage de ce JPopupMenu donc je fais:
JPopupMenu popup = new JPopupMenu ();
// AJOUTER DES JMENUITEM ICI
int count;
if ((cout = popup.getComponentsCount ()) > 0) {
for (int i = 0; i < count; ++i) {
popup.remove (i);
}
}
Ceci déclenche toujours une exception IndexOutOfBoundsException, ceci ne doit pas se produire car quand je fais la trace de mon programme je trouve que ce popup a 4 éléments mais dès l'indice 2 cette exception est levée.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 24 avril 2007 à 19:06
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013131 24 avril 2007 à 19:22
c'est pour cette raison que pour une suppression par index, il faut toujours le faire dans le sens inverse :
for (int i = count; i > 0; --i) {
popup.remove (i);
}
C'est pas forcément un bug de java, c'est pareil dans n'importe quel autre langage (logique d'ailleurs !), c'est un problème de programmation bien connu dont tout le monde se trouve confronté un jour.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 24 avril 2007 à 21:05
Petite rectification:
for (int i = count-1; i > 0; --i) {
popup.remove (i);
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 24 avril 2007 à 18:34
La raison pour laquelle je fais ce ménage (clear) et que j'affiche le résultat de ma recherche dans ce popup, donc je dois effacer les traces des opérations antérieures.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 24 avril 2007 à 18:49
Donc si je ne me trompe pas c'est une bug au niveau de la méthode JPopuMenu.remove
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 24 avril 2007 à 18:53