IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Problème de méthodes !


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut Problème de méthodes !
    Bonjour !


    J'étudie le Java pour mes cours de Développeur Informatique et je me vois confronté à un problème ... Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    import java.io.*;
     
     
    public class JBelote {
     
       public static void main (String [] args) {
          Jeu jeu = new Jeu ();
     
     
          /*
           * Initialisation du programme :
           */
          jeu.initProgramme ();
     
     
          /*
           * Debut du jeu (distribution des cartes) :
           */
          boolean b_ret = jeu.distributionCartes ();
       }
     
    }
     
     
    class Jeu {
     
       public Graphique g;
       public JoueurProgramme [] jp;
       public PaquetDeCartes [] paquetCartes;
     
     
       public void initProgramme () {
          int i = 0;
     
     
          Terminal.sautDeLigne ();
          Terminal.ecrireStringln ("Initialisation du programme :");
          Terminal.ecrireStringln ("> Creation de la fenetre...");
          Graphique g = new Graphique ();
     
          Terminal.ecrireStringln ("> Creation des joueurs...");
          JoueurProgramme [] jp = new JoueurProgramme [3];
     
          for (i = 0; i < 3; i++) {
             jp [i] = new JoueurProgramme ();
          }
     
          Terminal.ecrireStringln ("> Creation des paquets de cartes...");
          PaquetDeCartes [] paquetCartes = new PaquetDeCartes [4];
     
          for (i = 0; i < 4; i++) {
             paquetCartes [i] = new PaquetDeCartes ();
          }
          Terminal.sautDeLigne ();
       }
     
     
       public boolean distributionCartes () {
          int i, j = 0;
          char reponse;
          boolean b_ret = true;
     
     
          Terminal.ecrireStringln ("Debut du jeu :");
          Terminal.ecrireStringln ("> Distribution des cartes : premier tour...");
     
          i = j = 0;
          for (i = 0; i < 4; i++) {
             /* Lot de 3 cartes : */
             for (j = 0; j < 3; j++) {
                paquetCartes[i].ajoute (new Carte (Couleur.Coeur, Figure.Dame));
             }
     
             /* Lot de 2 cartes : */
             for (j = j; j < 5; j++) {
                paquetCartes[i].ajoute (new Carte (Couleur.Coeur, Figure.Dame));
             }
     
             Terminal.ecrireString ("Jeu du joueur : " + i + " : ");
             paquetCartes[i].affiche ();
             g.affiche1 (paquetCartes[i], new Carte (Couleur.Pique, Figure.Valet));
          }
     
          Terminal.ecrireStringln ("> Premier tour de table...");
          Terminal.ecrireStringln ("Voulez-vous prendre cette carte du paquet (o/n) ?");
          reponse = Terminal.lireChar ();
     
          if (reponse == 'n') {
             Terminal.ecrireStringln ("> Second tour de table...");
             Terminal.ecrireStringln ("Voulez-vous prendre cette carte du paquet (o/n) ?");
             reponse = Terminal.lireChar ();
     
             if (reponse == 'n') {
                return false;
             }
          }
     
     
          Terminal.ecrireStringln ("> Distribution des cartes : second tour...");
     
          for (i = 0; i < 4; i++) {
             /* Lot de 3 cartes : */
             for (j = 5; j < 8; j++) {
                paquetCartes[i].ajoute (new Carte (Couleur.Pique, Figure.Roi));
             }
     
             Terminal.ecrireString ("Jeu du joueur : " + i + " : ");
             paquetCartes[i].affiche ();
             g.affiche2 (paquetCartes[i]);
          }
     
     
          return b_ret;
       }
     
    }
    Donc voilà le problème, si je met le contenu des deux méthodes de la clase Jeu, je n'est aucun problème mais lorsque je fait comme montré ci-dessus j'obtiens ceci lors de l'exécution (aucun problème à la compilation) :
    franhec@franhec-ubuntu:~/Documents/Programmation/Java/JBelote$ javac JBelote.java
    franhec@franhec-ubuntu:~/Documents/Programmation/Java/JBelote$ java JBelote

    Initialisation du programme :
    > Creation de la fenetre...
    > Creation des joueurs...
    > Creation des paquets de cartes...

    Debut du jeu :
    > Distribution des cartes : premier tour...
    Exception in thread "main" java.lang.NullPointerException
    at Jeu.distributionCartes(JBelote.java:71)
    at JBelote.main(JBelote.java:19)

    Mais voilà, je ne sais pas pourquoi, si vous pouviez m'éclairer !
    Merci pour tout
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    NullPointerException ?

    A quoi correspond la ligne 71 ???

    a++

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Arf zut, sacré copier/coller Vais régler ca, vous remercie

    Ajout :
    Ca marche bien mieux ainsi, merci ... Tu parles d'une bétise...
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Dans ta méthode distributionCartes() tu utilise le tableau paquetCartes qui est un attribut de la classe Jeu.
    Or dans la méthode initProgramme() tu déclares et instancies le tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PaquetDeCartes [] paquetCartes = new PaquetDeCartes [4];
    le problème est qu'ici tu déclare et instancie un nouveau tableau qui n'est pas celui de ta classe. Celui-ci n'est donc pas initialisé (d'où la NullPointerException).

    Pour corrigé tu dois remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PaquetDeCartes [] paquetCartes = new PaquetDeCartes [4];
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    paquetCartes = new PaquetDeCartes [4];
    afin que ce soit bien le tableau attribut de la classe Jeu qui soit instancié.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec méthode "cloneNode()"
    Par kingmandrax dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 31/10/2006, 14h14
  2. Problème de méthode
    Par Thibaut_Dupont dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 10/07/2006, 14h16
  3. problème de méthode paint()
    Par guillaumeM63 dans le forum 2D
    Réponses: 2
    Dernier message: 16/05/2006, 23h50
  4. problème bizarre, méthode recurssive
    Par akrobat dans le forum C++
    Réponses: 19
    Dernier message: 05/05/2006, 14h22
  5. Problème de méthode
    Par Clad3 dans le forum C++
    Réponses: 2
    Dernier message: 10/09/2005, 11h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo