Soucis de java.lang.IndexOutOfBoundsException

DIROP Messages postés 4 Date d'inscription mercredi 29 octobre 2014 Statut Membre Dernière intervention 29 novembre 2014 - 29 oct. 2014 à 02:06
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 29 oct. 2014 à 07:44
Bonsoir, ayant lu sur de nombreux forum de nombreuses solutions, je n'ai pas su l'appliquer dans mon cas.
Voici le bout de code en question


 for(int i=0;i<=Herbes.size();i++){
if(Herbes.get(1) != null){

herbe = (Herbe) Herbes.get(i);
}
graphics2d.drawImage(herbe.getImage(), herbe.getX(), herbe.getY(), null);

}



Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)

Merci de votre futur aide

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127
29 oct. 2014 à 07:44
Bonjour,

C'est pourtant pas très compliqué, faut lire l'erreur
Index: 3, Size: 3
.
Tu fais un
Herbes.get(i)
avec
i==3
alors que
Herbes.size()==3
.
Or les indices commencent à 0 et se terminent à
size()-1
, donc 2, pas 3.

Regarde ta boucle, tu fais
i<=Herbes.size()
au lieu de
i<Herbes.size()
...
2
Rejoignez-nous