Java.lang.NullPointerException

Résolu/Fermé
Teevibi - 6 mai 2010 à 12:31
 teevibi - 8 mai 2010 à 07:16
Bonjour,

J'obtiens cette erreur lors de l'exécution de mon programme et je ne comprend pas pourquoi :

Exception in thread "main" java.lang.NullPointerException
at JeuCartes.creerJeu(JeuCartes.java:11)
at JeuCartesTest.main(JeuCartesTest.java:6)

Voici le code de la classe JeuCartes :

public class JeuCartes {

Carte [] JeuCartes;

public void creerJeu(int nombreCarte){
JeuCartes = new Carte[nombreCarte];
int couleur=1;
int valeurCarteInseree = 13;
for(int i=0;i<nombreCarte;i++){
JeuCartes[i].rang = valeurCarteInseree; // ERREUR
JeuCartes[i].couleur = couleur;
couleur++;
if(couleur==4){
couleur=1;
valeurCarteInseree--;
}
}
}
}

Voici le code de la classe JeuCartesTest :


public class JeuCartesTest {

public static void main(String[] args) {
JeuCartes j1 = new JeuCartes();
j1.creerJeu(32); // ERREUR
}

}

Et le code de la classe Carte :

public class Carte {
int rang,couleur;
static String [] tabCouleur = {"CARREAU","TREFLE","COEUR","PIQUE"};
static String [] tabRang = {"AS","DEUX","TROIS","QUATRE","CINQ","SIX","SEPT","HUIT","NEUF","DIX","VALET","DAME","ROI"};

}


Merci de votre aide

3 réponses

Urielxx Messages postés 190 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 25 juin 2013 46
6 mai 2010 à 20:18
Il ne te manquerait pas un constructeur dans ta classe JeuCartes ?
0
Bonjour,

le problème est que avec cette ligne :
JeuCartes = new Carte[nombreCarte];
tu instancie ton tableau de Carte mais tu ne crée pas une instance pour chaque carte de ton tableau....
Tu doit donc faire :

for(int i=0;i<nombreCarte;i++){
JeuCartes[i] = new Carte();
JeuCartes[i].rang = valeurCarteInseree; // ERREUR
JeuCartes[i].couleur = couleur;
0
Merci, ça marche !
0