erreur: ArrayIndexOutOfBoundsException

erreur: ArrayIndexOutOfBoundsException - Java - Programmation

Marsh Posté le 13-03-2005 à 18:22:32    

netbeans compile bien le Main.java et le reste mais au moment de lancer le projet il me dit qu'il y a une erreur
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 1
 
j'ai beau retourné le code dans tous les sens je vois pas
http://tom261285.free.fr
 
j'ai mis mes sources dessus si quelqu'un pouvait regarder ca serait sympa  
 :??:
 
plateauB et rangeeB étant la meme chose que plateau et rangee mais contenant des booléens
 
ps: je débute en java


Message édité par tom261285 le 13-03-2005 à 18:23:30
Reply

Marsh Posté le 13-03-2005 à 18:22:32   

Reply

Marsh Posté le 13-03-2005 à 18:33:47    

Code :
  1. F:\temp>java morpion.Main
  2. Entrez la ligne puis la colonne
  3. Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Array index
  4. out of range: 1
  5.         at java.util.Vector.get(Unknown Source)
  6.         at morpion.Rangee.get(Rangee.java:33)
  7.         at morpion.Plateau.access(Plateau.java:58)
  8.         at morpion.Main.verification(Main.java:64)
  9.         at morpion.Main.main(Main.java:159)
  10. F:\temp>


 
La pile est un peu plus longue que ça :o
 
C'est donc dans Rangee.java, ligne 33 que tu fais un accès invalide :o


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 13-03-2005 à 18:47:00    

elianor a écrit :

Code :
  1. F:\temp>java morpion.Main
  2. Entrez la ligne puis la colonne
  3. Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Array index
  4. out of range: 1
  5.         at java.util.Vector.get(Unknown Source)
  6.         at morpion.Rangee.get(Rangee.java:33)
  7.         at morpion.Plateau.access(Plateau.java:58)
  8.         at morpion.Main.verification(Main.java:64)
  9.         at morpion.Main.main(Main.java:159)
  10. F:\temp>


 
La pile est un peu plus longue que ça :o
 
C'est donc dans Rangee.java, ligne 33 que tu fais un accès invalide :o


 
bah je vois pas pourquoi  :??:  
rien de mauvais dans mon code  :heink:  
si ????  :(

Reply

Marsh Posté le 13-03-2005 à 18:48:17    

Utilise un debuggeur :o


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 13-03-2005 à 18:49:13    

out of range : 1
faudrait ptet voir a ajouter des elements dans ton vecteur [:petrus75]

Reply

Marsh Posté le 14-03-2005 à 14:17:23    

tom261285 a écrit :


rien de mauvais dans mon code  :heink:  


ha ben dans ce cas, désolé. surement un bug de la jvm [:bien]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 16-03-2005 à 19:23:26    

n'est-ce pas parce que le type de la variable déclarée est dépassé en taille ?

Reply

Marsh Posté le 17-03-2005 à 20:08:58    

nefertiti2 a écrit :

n'est-ce pas parce que le type de la variable déclarée est dépassé en taille ?


bah normalement ca veut dire ca :( mais je vois pas pourquoi il me le met car je fais rien dedans lors de la 1ere execution

Reply

Marsh Posté le 18-03-2005 à 08:03:05    

elianor a écrit :

Utilise un debuggeur :o


 
[:j l b]


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 18-03-2005 à 08:41:04    

Sorry, je me suis trompée(je débute aussi),c'est quand tu remplis un tableau et que tu dépasses sa capacité, ex tu déclares un tableau à 10 éléments, tu fais pas gaffe que le premier est à l'indice 0 et tu crois pouvoir aller jusqu'à l'indice 10, indice 10 tu es déjà hors du tableau.

Reply

Marsh Posté le 18-03-2005 à 08:41:04   

Reply

Marsh Posté le 18-03-2005 à 16:22:03    

ca y est je crois que j'ai compris
je suis pas sur mais on dirait que l'erreur vient du fait que je veuille mettre qqchose dans la case [2] du vector alors que la [1] est vide par exemple
en c++ on peut... on peut pas en java ???

Reply

Marsh Posté le 18-03-2005 à 16:24:01    

si.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 18-03-2005 à 16:29:38    


ta reponse m'est d'une grande aide ;)
 
j'ai mal declarer mon vector pr que ca merde ou c'est moi qui analyse mal mon probleme et qui me plante completement...  :??:

Reply

Marsh Posté le 18-03-2005 à 16:46:54    

les deux, je dirais [:dawa]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 18-03-2005 à 18:42:41    

jpense (sans lire le code) que t'as pas compris que pour acceder a un element n du vecteur faut deja avoir ajouté n+1 element dans ledit vecteur (genre ajouter 2 elements pour acceder a l'element 1 quoi)


---------------
NP: HTTP Error 764 Stupid coder found
Reply

Marsh Posté le 18-03-2005 à 19:08:53    

:heink:  
Je comprend pas pourquoi tu utilises Vector<Rangee> plutot qu'un tableau à 2 dimensions pour construire ton plateau...
 
Tu peux m'expliquer ce que tu comptes faire plus tard avec ta classe Rangee ?
Je pense que tu as tout simplement cherché trop compliqué pour construire ton plateau... Tu risques d'avoir du mal à debugger ton programme après (la preuve en est...).
 
Sinon, apparremment ton problème vient du fait que tu ne démarres pas à 0 l'initialisation de ton vecteur ou que tu ne l'initialise pas du tout...  
 
Ex :
for (int i=0(et pas 1); i <taille_de_ta_rangee;i++) {
    initialisation_de_ta_rangee();
}


Message édité par Michelpopopleye le 18-03-2005 à 19:17:32
Reply

Marsh Posté le 18-03-2005 à 20:40:43    

je sais pas faire un tableau a 2 dimensions  :(  
je crois que je ne l'initialise pas du tout mais je vois pas pourquoi... car toute mes boucles for sont for(int i=0...
je vois pas ou tu as vu un i=1

Reply

Marsh Posté le 21-03-2005 à 14:02:22    

Tableau à deux dimension :
int[][] a;
Le premier indice est celui de la ligne, le deuxième la colonne.
 
Un vecteur, tu ne peux qu'ajouter des éléments, c'est une sorte de pile.
Après, tu peux insérer des éléments entre ceux déjà existant, mais pas en ajouter un à l'indice 15 si tu n'as que 9 élément( ou 14, ou même 15) dans ton vecteur.

Reply

Marsh Posté le 21-03-2005 à 14:55:15    

Et si tu postait un peu de code histoire de voir [:itm]

Reply

Marsh Posté le 21-03-2005 à 18:50:17    

vk_phoenixfr a écrit :


Un vecteur, tu ne peux qu'ajouter des éléments, c'est une sorte de pile.
Après, tu peux insérer des éléments entre ceux déjà existant, mais pas en ajouter un à l'indice 15 si tu n'as que 9 élément( ou 14, ou même 15) dans ton vecteur.


 
 :jap:  
 
Le tableau me semble plus simple à implanter...
Mais sinon, tu es donc obligé d'initialiser tous les éléments de ton vecteur...
(Je n'utilises jamais la classe Vector dans Java... dans quel cas de figure est-elle utile ?  :??: )

Reply

Marsh Posté le 21-03-2005 à 18:53:17    

Michelpopopleye a écrit :


(Je n'utilises jamais la classe Vector dans Java... dans quel cas de figure est-elle utile ?  :??: )


 
aucun, elle est limite considérée comme deprecated ...


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 21-03-2005 à 18:54:08    

elianor a écrit :

aucun, elle est limite considérée comme deprecated ...


 
Oki...  :bounce:

Reply

Marsh Posté le 23-03-2005 à 13:39:33    

voila je suis passé à un tableau a 2 dimensions comme conseillé précédement:
je pense que le code qui merde se situe ici

Code :
  1. public void tourJoueur(Joueur j)
  2.     {
  3.         try
  4.         {
  5.             int l=1, c=1;
  6.             Boolean b=false;
  7.             System.out.println("Entrez la ligne puis la colonne" );
  8.             BufferedReader entreeClavier= new BufferedReader(new InputStreamReader(System.in));
  9.             while(!b)
  10.             {
  11.                 l=entreeClavier.read();
  12.                 c=entreeClavier.read();
  13.                 if(plateau.isEmpty(l,c))
  14.                 {
  15.                     b=true;
  16.                 }
  17.             }
  18.             if(b)
  19.             {
  20.                 plateau.addElement(l, c, j);
  21.             }
  22.         }
  23.         catch(IOException e)
  24.         {
  25.             System.err.println(e.getMessage());
  26.         }
  27.     }


le tableau est initialisé ainsi:

Code :
  1. public Plateau(int j)
  2.     {
  3.         plateau = new Joueur[j][j];
  4.         libre=j*j;
  5.     }


Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed