threads et exceptions sur java

threads et exceptions sur java - Java - Programmation

Marsh Posté le 04-04-2013 à 16:09:47    

Bonjour,
 
J'ai un souci avec un programme java.
 
Eclipse me donne l'erreur suivante :
 
Exception in thread "main" java.lang.NullPointerException
 at com.Labyrinth.Plateau.<init>(Plateau.java:29)
 at com.Labyrinth.Labyrinth.main(Labyrinth.java:312)
 
Voici pour plateau:
 
public  Plateau(int h){
  hauteur=h;
  int v=h*h;
     
     for(int i=0;i<h;i++)
     {
      for(int j=0;j<h;j++)
      {
       plat[i][j]=new Case(v, 'X');
      }
     }  
 }
 
et pour le main :
 
                System.out.println("Entrez la hauteur " );
  int nombre = new Scanner(System.in).nextInt();
   
  Plateau unplateau=new Plateau(nombre);
 
cordialement
 

Reply

Marsh Posté le 04-04-2013 à 16:09:47   

Reply

Marsh Posté le 04-04-2013 à 17:24:14    

C'est quoi la ligne 29 de Plateau ? Et la ligne 312 de Labyrinth ?

Reply

Marsh Posté le 04-04-2013 à 21:02:20    

Plateau unplateau=new Plateau(nombre), c'est la 314.
 
29, c'est plat[i][j]=new Case (v, 'X');
 
Cordialement

Reply

Marsh Posté le 04-04-2013 à 21:17:23    

Bonjour !
 
Comment avez-vous déclaré et initialisé votre attribut "plat" ? Car pour accéder à l'élément (i,j) il faut avoir alloué un minimum de choses ...
 
Bon courage !

Reply

Marsh Posté le 05-04-2013 à 09:27:39    

Voici comment je déclare dans la classe Plateau en haut mes attributs :
 
        private Case[][] plat;
 private int hauteur;  
 
Je ne sais pas si je dois faire autre chose. Cordialement

Reply

Marsh Posté le 05-04-2013 à 20:01:02    

Bonsoir !
 
Logiquement, vous devez d'abord définir les dimensions de votre tableau "plat" :  

Code :
  1. plat = new Case[h][h];


avant votre boucle, sinon, le pointeur "plat" est nul quand vous l'utilisez dans la boucle.
 
Bonne continuation !


Message édité par Farian le 05-04-2013 à 20:01:51
Reply

Marsh Posté le 06-04-2013 à 08:59:14    

merci, maintenant c'est une autre faute, ce qui montre que le problème est résolu,  
 
merci.

Reply

Sujets relatifs:

Leave a Replay

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