Ajout d'éléments à une JList de liste de tableaux à l'aide de DefaultListModel
Je suis en train d'ajouter des éléments qui sont dans un ArrayList
à un JList
qui est quand j'utilise le code suivant:
private void UpdateJList(){
DefaultListModel<String> model = new DefaultListModel<String>();
for(Person p : personList){
model.addElement(p.ToString());
}
clientJList.setModel(model);
clientJList.setSelectedIndex(0);
}
Cependant, Si je déclare le DefaultListModel
en dehors de la méthode, l'ajout d'incréments de chaque élément, c'est à dire au lieu d'ajouter une de chaque article, il ajoute plusieurs éléments. Je me demandais juste pourquoi cela se produit?
Vous devez être en cours d'exécution UpdateJList() code deux fois, de sorte que les éléments ajoutés deux fois. Publier vos SSCCE qui montre le problème.
c'est que sur réitéré l'appel de UpdateJList ou tout simplement un appel? peut-être la peine de mettre une bûche dans la méthode pour s'assurer qu'elle est appelée qu'une seule fois. Je suppose que, vous voudrez peut-être faire une .clear() sur le modèle au début du modèle, étant donné que vous l'utilisez comme un niveau de classe var.
Merci monsieur 🙂 compensation le modèle résolu le problème 🙂
s'il vous plaît apprendre conventions de nommage java et de s'y tenir
c'est que sur réitéré l'appel de UpdateJList ou tout simplement un appel? peut-être la peine de mettre une bûche dans la méthode pour s'assurer qu'elle est appelée qu'une seule fois. Je suppose que, vous voudrez peut-être faire une .clear() sur le modèle au début du modèle, étant donné que vous l'utilisez comme un niveau de classe var.
Merci monsieur 🙂 compensation le modèle résolu le problème 🙂
s'il vous plaît apprendre conventions de nommage java et de s'y tenir
OriginalL'auteur Ari | 2011-11-24
Vous devez vous connecter pour publier un commentaire.
Si vous définissez
DefaultListModel
à l'extérieur de votre méthode de mise à jour, puis il devient variable d'Instance de sorte qu'il sera ayant la même valeur pour une seule instance. Ainsi, si vous appelez cette méthode plus et plus de même instance, il suffit simplement d'y ajouter plus de valeurs à la liste existante. Ainsi, il montre plusieurs éléments.NOTE : déclaration de
DefaultListModel
à l'extérieur de la fonction ne cause pas de problème, prise de son objet à l'extérieur de la fonction est le problème. Vous pouvez faire ce qui suit sans aucun problème :ou vous pouvez essayer de supprimer les valeurs précédentes à partir de votre modèle, puis de l'ajout de nouvelles valeurs.
OriginalL'auteur gprathour