Ma liste se duplique

Résolu/Fermé
Hamster18 Messages postés 178 Date d'inscription mercredi 2 janvier 2019 Statut Membre Dernière intervention 22 janvier 2024 - 5 déc. 2019 à 16:24
Hamster18 Messages postés 178 Date d'inscription mercredi 2 janvier 2019 Statut Membre Dernière intervention 22 janvier 2024 - 5 déc. 2019 à 19:09
Bonjour j'essaye de faire un jeu en java/javafx et j'essaye de réaliser un tableau des scores sauf que ma liste se duplique c'est-à-dire que j'ai deux fois l'affichage des éléments de ma liste. J'ai beau lire et relire mon code je ne voit pas ou je fait ce "double remplissage". Pouvez vous m'aider à trouver mon erreur s'il vous plait ?
Merci d'avance pour vos réponse.

---Je pense que l'erreur est dans cette partie---
public class ListeJoueurs {
    private static ObservableList<Joueur> listJoueurObs = FXCollections.observableArrayList();
    private static ListProperty<Joueur> listJoueur = new SimpleListProperty<>(listJoueurObs);
        public ObservableList<Joueur> getLesPersonnes() {
            return listJoueur.get();
        }
        public void setListJoueur(ObservableList<Joueur> value) {listJoueur.set(value);}
        public static ListProperty<Joueur> listJoueurProperty() {
            return listJoueur;
        }

    public ListeJoueurs () {
        listJoueurObs.add(new Joueur("cloclo"));
        listJoueurObs.add(new Joueur("hamster18"));
        listJoueurObs.add(new Joueur("Alex"));
    }
}


    @FXML
    private TableView<Joueur> tableDesScores;
    @FXML

    private final ListeJoueurs listeJoueurs = new ListeJoueurs();

    private final TableColumn<Joueur, String> columnSurname = new TableColumn<>("Surname");
    private final TableColumn<Joueur, Integer> columnScore = new TableColumn<>("Score");
 public void initialize() {
        for(Joueur elem: listeJoueurs.getLesPersonnes())///////////////A SUPPRIMER
        {
            System.out.println (elem.getSurname());
        }
        columnSurname.setCellValueFactory(new PropertyValueFactory<>("surname"));
        tableDesScores.getColumns().add(columnSurname);

        columnScore.setCellValueFactory(new PropertyValueFactory<>("nbPartieGagnee"));
        tableDesScores.getColumns().add(columnScore);


        tableDesScores.itemsProperty().bind(listeJoueurs.listJoueurProperty());

    }

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
5 déc. 2019 à 18:18
Bonjour,

Ta liste est static (donc commune à tous les objets) mais elle est remplie dans le constructeur.
Donc chaque fois qu'un objet est construit la liste commune est remplie de nouveaux objets.
Il faut soit avoir une liste static avec une initialisation static, soit une liste par objet avec une initialisation dans le constructeur.
0
Hamster18 Messages postés 178 Date d'inscription mercredi 2 janvier 2019 Statut Membre Dernière intervention 22 janvier 2024
5 déc. 2019 à 19:09
Bonsoir,
D'accord merci pour ce petit cours =)
0