Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1567 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  accesseur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

accesseur

n°1259874
PB-
Posté le 06-12-2005 à 11:12:15  profilanswer
 

bonjour a tous
 
j'ai une erreur de type  
        Exception in thread "main" java.lang.NullPointerException
        at Partie.distribuer(Partie.java:54)
        at Jeu_31.faire_une(Jeu_31.java:29)
        at Jeu_31.le_jeu(Jeu_31.java:53)
        at Jeu_31.main(Jeu_31.java:73)
 
je vais donc a Partie.java:54
 
joueur[i].get_main().set_carte1( une_carte )
 
je ne sais pas si je vais etre clair, mais set_carte1 est une méthode qui prends en entrée une Carte est initialise la première carte de ma main a sa valeur.
 
un joueur a comme attribut une main, dans mon cas c'est la fonction get_main() qui me la donne.
 
Est ce que quelqu'un a une idée, je suppose que je ne suis aps très claire, si vous voulez des détails je reste la ;)
 
Merci

mood
Publicité
Posté le 06-12-2005 à 11:12:15  profilanswer
 

n°1259887
benou
Posté le 06-12-2005 à 11:32:32  profilanswer
 

t'as un objet non instancié => soit joueur[i], soit l'objet retourné par joueur[i].get_main().
A toi de tester lequel c'est  
 
à l'occasion, je te suggère d'aller faire un tour du côté des convention de nommage java http://java.sun.com/docs/codeconv/


---------------
ma vie, mon oeuvre - HomePlayer
n°1259890
PB-
Posté le 06-12-2005 à 11:40:25  profilanswer
 

merci je vais regarder ca

n°1259894
PB-
Posté le 06-12-2005 à 11:46:26  profilanswer
 

en fait ma fonction get_main() retourne un objet null, mais c normal car je veux le remplir avec set_carte1 .. ca vient de la ?

n°1259912
Bidem
Posté le 06-12-2005 à 12:20:49  profilanswer
 

PB- a écrit :

en fait ma fonction get_main() retourne un objet null, mais c normal car je veux le remplir avec set_carte1 .. ca vient de la ?


 
Mais avant de pouvoir remplir ta main, il faut d'abord la créer (l'instancier) et le meilleur endroit pour le faire c'est dans le constructeur de la classe Jeu_31.
 
PS : Comme l'a dit benou, va voir les convention de nommage. Les '_' dans les noms de classes et méthode, ça pique les yeux ;)

n°1259918
PB-
Posté le 06-12-2005 à 12:34:04  profilanswer
 

si je fais X = new Joueur(...)
 
sachant qu'un joueur a comme attibut une main ca devrait le faire non ?
 
merci pour vos réponses et désolé pour les "_"

n°1260012
Bidem
Posté le 06-12-2005 à 14:10:18  profilanswer
 

PB- a écrit :

si je fais X = new Joueur(...)
 
sachant qu'un joueur a comme attibut une main ca devrait le faire non ?
 
merci pour vos réponses et désolé pour les "_"


 
Avec ça tu instancies un joueur mais il faut encore que tu instancies sa main.
 
J'imagine que ton code ressemble à ça :

Code :
  1. public class Joueur {
  2.   /** Main du joueur */
  3.   private Main main;
  4.   ...
  5.   /**
  6.    * getter de la main
  7.    * @return la main du joueur */
  8.   public Main getMain() {
  9.     return main;
  10.   }
  11. }


 
L'attribut main est bien défini mais il n'est pas initialisé !
Bref il faut avoir  

Code :
  1. main = new Main();

n°1260340
Pfv3
Posté le 06-12-2005 à 17:52:31  profilanswer
 

Comme c'est plus joli getMain() que get_Main().  C'est important les conventions!

n°1260381
PB-
Posté le 06-12-2005 à 18:24:55  profilanswer
 

ok ca marche merci
 
pour les conventions , je savais pas je commence juste :(

n°1260463
benou
Posté le 06-12-2005 à 18:57:10  profilanswer
 

autant commencer bien ;)


---------------
ma vie, mon oeuvre - HomePlayer
mood
Publicité
Posté le 06-12-2005 à 18:57:10  profilanswer
 

n°1261372
PB-
Posté le 08-12-2005 à 00:25:56  profilanswer
 

rebonjour c'est encore moi :)
 
J'essaye de faire un applet gérant des images.
 
Le problème est que lorsque je la lance je vois le programme tourner normalement en fond mais il ne se passe rien dans mon applet ( je souhaite notemment rafraichir des images )
 
Au bout d'un moment le prog dans la console se termine mais reste "en attente" ..
 
quelqu'un a une idée ?il est tard donc je dois encore une fois ne pas etre tres clair :p
 
merci

n°1262053
PB-
Posté le 08-12-2005 à 19:37:16  profilanswer
 

Je voudrais savoir comment on rafraichi une applet.
 
J'ai une interface , un borderlayout, et des fonctions "fairePartieNord" , ..sud ..etc; a mon initialisation ca marche impec mais par contre lorsque je rapelle une de ces fonctions avec des parametres différents il ne se passe rien,  quelqu'un a deja eu un probleme similaire ?

n°1262073
souk
Tourist
Posté le 08-12-2005 à 20:01:26  profilanswer
 

PB- a écrit :

quelqu'un a deja eu un probleme similaire ?


tu veux dire un probleme vague et mal decrit ? [:pingouino]

n°1262081
PB-
Posté le 08-12-2005 à 20:17:04  profilanswer
 

désolé, voila ce que j'ai
 
public class Interface_jeu extends JApplet  {
       
      private Controleur controleur = new Controleur( this );
      private JPanel conteneur_ouest;
      private JPanel conteneur_nord;
      private JPanel conteneur_est;
      private JPanel conteneur_sud;
      private JPanel conteneur_centre;
 
      private JButton cogner, une, deux, trois, quatre, jouer, quitter, rejouer, Distribuer,carte_retour;  
 
      void faire_partie_nord( String c1, String c2, String c3, String nom_ordi, String niv, int sco  )
    {
        ....
    }
     void faire_partie_sud( String c1, String c2, String c3, String c4, String nom_joueur, int sco )
    {
        ....
    }
      void faire_partie_ouest( String c1, String c2, String c3, String nom_ordi,  String niv, int sco)
    {
        ....
    }
      void faire_partie_centre( String c1, String c2, String c3, String nom_ordi,  String niv, int sco)
    {
        ....
    }
      void faire_partie_est( String c1, String c2, String c3, String nom_ordi,  String niv, int sco)
    {
        ....
    }
 
 
    public void init()
      {
                     faire_partie_nord("Vide.gif","Vide.gif","Vide.gif",controleur.mon_jeu.tab[2].get_nom(),controleur.mon_jeu.tab[2].get_niveau(),controleur.mon_jeu.tab[2].get_score());  
              faire_partie_ouest("Vide.gif","Vide.gif","Vide.gif",controleur.mon_jeu.tab[3].get_nom(),controleur.mon_jeu.tab[3].get_niveau(),controleur.mon_jeu.tab[3].get_score());  
            faire_partie_est("Vide.gif","Vide.gif","Vide.gif",controleur.mon_jeu.tab[1].get_nom(),controleur.mon_jeu.tab[1].get_niveau(),controleur.mon_jeu.tab[1].get_score());  
            faire_partie_sud("Cartes/"+"Vide.gif","Cartes/"+"Vide.gif","Cartes/"+"Vide.gif","Cartes/"+"Vide.gif",controleur.mon_jeu.tab[0].get_nom(), controleur.mon_jeu.tab[0].get_score());  
            faire_partie_centre("Cartes/"+"Vide.gif","Cartes/"+"Vide.gif",controleur.mon_jeu.get_nb_partie(),"c'est a Fabien de jouer" );
            faire_abonnement();
   
       
         Container c=getContentPane();
       
               
         c.setLayout(new BorderLayout());
           
         c.add(conteneur_sud,BorderLayout.SOUTH);
         c.add(conteneur_nord,BorderLayout.NORTH);
         c.add(conteneur_ouest,BorderLayout.WEST);
         c.add(conteneur_est,BorderLayout.EAST);
         c.add(conteneur_centre,BorderLayout.CENTER);        
 
         controleur.t.start();
 
         
      }
 
 
J'ai ensuite une classe Controleur :
 
 
 
public class Controleur {
 
      Interface_jeu mon_inter;
      Jeu_31 mon_jeu;
     
      Timer t;
 
      public Controleur( Interface_jeu j )
      {
 
         mon_jeu = new Jeu_31( this );
         mon_inter = j;
         t = new Timer( this );
      }
 
      public void commencer()
      {
         mon_jeu.le_jeu();
      }
      public void recommencer()
      {
         mon_jeu = new Jeu_31( this );
         mon_jeu.le_jeu();
      }
 
      public void changer_texte( String s )
      {
         mon_inter.faire_partie_centre("Cartes/"+"Vide.gif","Cartes/"+"Vide.gif",mon_jeu.get_nb_partie(),s);
         System.out.println("changement de texte:"+s);
      }
      public void changer_nord()
      {
         System.out.println("changement de nord" );
         System.out.println("nouveau score:"+mon_jeu.tab[2].get_score());
         mon_inter.faire_partie_nord(mon_jeu.tab[2].get_main().get_carte1().get_nom(),mon_jeu.tab[2].get_main().get_carte2().get_nom(),mon_jeu.tab[2].get_main().get_carte3().get_nom(),mon_jeu.tab[2].get_nom(),mon_jeu.tab[2].get_niveau(),mon_jeu.tab[2].get_score());
      }
}
 
 
 
les méthodes changer_nord, changer texte, sont appellées dans une classe Jeu.
 
Le problème s'est que j'ai l'impression que lorsque je rapelle les faire_partie ca ne modifie pas mon applet :(


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  accesseur

 

Sujets relatifs
accesseur ? 
Plus de sujets relatifs à : accesseur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR