J'ai un List
qui stocke le objects
personnalisé du type de catégorie. Ce List
est dans la classe Control
. Il n'y a aucun problème à remplir le List
, cela fonctionne comme prévu. Le problème se pose lorsque j'appelle la méthode populateComboBox()
qui se trouve dans la classe View
.JComboBox affiche des copies du même objet stockées dans une liste JAVA
Le problème: la première fois la méthode populateComboBox()
est invoquée, les JComboBox
affiche tous les objets du List
. La deuxième fois populateComboBox()
méthode est appelée, le JComboBox
affiche des copies des objets en double.
Exemple si je le dit POPULATE List
avec deux objects
de type Catégorie (permet de les nommer C1
& C2
) et appeler la méthode populateComboBox()
, les JComboBox
affiche C1
C2
. Lorsqu'il est invoqué la deuxième fois, il affiche C1
C2
C1
C2
. La troisième fois, C1
C2
C1
C2``C1
C2
et ainsi de suite ...
Voici le contenu de classe de la classe Catégorie:
public class Category
{
private String catName;
public Category()
{
}
public Category(String str) {
this.catName = str;
}
public String getCatName()
{
return catName;
}
@Override
public String toString()
{
return catName;
}
}
Voici une partie de ma classe de contrôle:
public final class Control
{
private static List<Category> categoryList = new ArrayList<>();
public static List<Category> getCatList()
{
return categoryList;
}
}
Voici le contenu de la méthode populateComboBox()
dans la classe de vue:
{
List<Category> catList = Control.getCatList();
for(Category cat: catList)
{
selectCatComboBox.addItem(cat);
}
addItemDialog.setVisible(true);
}
@AndrewThompson J'ai essayé de garder les choses au minimum. –