Probleme avec ArrayList et toString

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 28 févr. 2009 à 11:48
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 28 févr. 2009 à 12:25
Bonjour a tous, je débute en JAVA et j'essaye de créer un objet
PaquetCarte qui contient une arraylist de cartes qui sont elles aussi
des objets ayant en parametres un symbole, une valeur et une couleur.

j'ai créer une fonction toString() pour les cartes, elle fonctionne,
Par contre j'ai un probleme avec le paquet de cartes, je vous donne mon
code parce que je ne vois pas du tout où elle se situe :


package jeu;


import java.util.ArrayList;


public class PaquetCarte extends ArrayList<Carte> {

    private String nomPaquet;

    private ArrayList<Carte> cartesDuPaquet;

    private static byte NBR_CARTE=72;

   

   

   

    public PaquetCarte(String nomPaquetEntre) {

        nomPaquet=nomPaquetEntre;

        for (int compteur = 0 ;compteur<Carte.getNBR_FORMES();compteur++){

            Carte carte = new Carte(compteur,1,1);

            cartesDuPaquet.add(carte);

        }

       

    }


    public String toString() {

        String res="";

        for (int compteur = 0; compteur<Carte.getNBR_FORMES(); compteur++){

        res=res+cartesDuPaquet.get(compteur).toString();

        }

        return res;

    }

       

}


Merci d'avance

2 réponses

cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
28 févr. 2009 à 12:19
et si tu fais :
public String toString(){
String res = "";
for ( Carte c : cartesDuPaquet ) {
res += c.toString();
res += "\n"; //passage à la ligne
}
return res;
}

normalement cela ira...
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
28 févr. 2009 à 12:25
non, j'ai toujours le meme probleme
Exception in thread "main" java.lang.NullPointerException
    at jeu.PaquetCarte.(PaquetCarte.java:16)
    at jeu.Speed.main(Speed.java:6)

peut etre que j'ai une autre erreur, je mets la suite du code

package jeu;

public class Speed {

    public static void main(String[] args) {
        PaquetCarte paquet1=new PaquetCarte("paquet");
        System.out.println(paquet1.toString());
        }
}

package jeu;

import java.awt.Color;

public class Carte {
    private Symbole formeCarte;
    private Color couleurCarte;
    private Integer valeurCarte;
    private boolean carteVide;
    private static byte NBR_COULEUR=5;
    private static byte NBR_FORMES=5;
    private static byte NBR_VALEUR=5;
   

// Constructeurs -----------------------------------------------------------//
   
    //Constructeur de carte vide
    public Carte(){
        carteVide=true;
    }
   
    //Constructeur de carte non vide
    public Carte(int valforme , int valcouleur, int valeurEntree) {
        Symbole[] tableauSymbole=Symbole.values();
        formeCarte=tableauSymbole[valforme];
        //On utilise l'enum Symbole
        if (valcouleur<=NBR_COULEUR & valforme<=NBR_FORMES & valeurEntree<=NBR_VALEUR){
            switch(valcouleur){
                case 1: couleurCarte=Color.ORANGE;
                        break;
                case 2: couleurCarte=Color.CYAN;
                        break;
                case 3: couleurCarte=Color.BLACK;
                        break;
                case 4: couleurCarte=Color.LIGHT_GRAY;
                        break;
                case 5: couleurCarte=Color.BLUE;
                        break;
            }
            valeurCarte=valeurEntree;
            carteVide=false;
        }
        else {carteVide=true;}
    }
    
//Méthodes Get et Set ------------------------------------------------------//

    public Symbole getForme() {
        return formeCarte;
    }

    public void setForme(Symbole forme) {
        formeCarte = forme;
    }

    public Color getCouleur() {
        return couleurCarte;
    }

    public void setCouleur(Color couleur) {
        couleurCarte = couleur;
    }

    public Integer getValeur() {
        return valeurCarte;
    }

    public void setValeur(Integer valeur) {
        valeurCarte = valeur;
    }

    public byte getNBR_COULEUR() {
        return NBR_COULEUR;
    }

    public void setNBR_COULEUR(byte nbr_couleur) {
        NBR_COULEUR = nbr_couleur;
    }

    public boolean isCarteVide() {
        return carteVide;
    }

    public void setCarteVide(boolean booleanCarteVide) {
        carteVide = booleanCarteVide;
    }

    public static byte getNBR_FORMES() {
        return NBR_FORMES;
    }

    public static void setNBR_FORMES(byte nbr_formes) {
        NBR_FORMES = nbr_formes;
    }

// Méthode toString() ------------------------------------------------------//

    public String toString() {
        String res;
        if (carteVide){
            res="Carte vide";
        }
        else{
            res="Forme : " + getForme() + ", Couleur : " + getCouleur() + ", Valeur : " +getValeur();
            }
        return res;
    }

}

merci quand meme.
0
Rejoignez-nous