2016-07-25 1 views
0

J'ai créé un client -> système de chat room, et j'ai une liste d'utilisateurs actuellement connectés, qui est actuellement affiché sur un clic de bouton dans un JTextField, cela fonctionne correctement et affiche la chaîne tableau. Cependant, j'ai ajouté un autre composant à mon GUI, étant un JList. J'ai essayé de créer une méthode appelée updateUserList pour mettre à jour le JList avec les utilisateurs qui sont connectés. J'ai essayé d'utiliser un DefaultListModel de type String, cependant cela n'affiche rien dans le JList et je ne suis pas sûr de savoir pourquoi.Binding String ArrayList vers JList

Ci-dessous est la méthode updateUserList J'ai créé:

public void updateUserList() 
{ 
    model = new DefaultListModel<String>(); 
    for(String usernames : users) 
     model.addElement(usernames); 
    jl_users = new JList<String>(model); 
} 

S'il vous plaît noter que le modèle, les noms d'utilisateur et jl_users sont définis à l'échelle mondiale, donc je ne les ai pas inclus dans le poste.

+0

Il n'y a pas assez de code. Pour commencer, il semble étrange que votre code ** update ** crée un objet JList complètement nouveau. Je m'attendrais plutôt à ce que votre application contienne un JList ** fixed **; et que vous ne mettez à jour que le modèle de ce JList. C'est tout le sens de l'approche par modèle: vous ne jetez pas vos composants d'interface utilisateur chaque fois que vous mettez à jour quelque chose. En d'autres termes, veuillez vous adresser au helpcenter pour savoir comment écrire des "questions de travail", car vous ne fournissez pas assez d'informations pour que nous puissions vous aider vraiment – GhostCat

+0

Mon code contient un nouvel objet JList car j'étais sous l'impression que est comment ajouter des éléments à JList – DaveDavidson

+0

Vous n'ajoutez pas de nouveaux éléments à une liste en créant une liste, mais vous créez la liste au départ, et plus tard, vous ajoutez/supprimez des éléments de la liste. peut-être vous voulez simplement lire un tutoriel sur ce genre de choses? https://docs.oracle.com/javase/tutorial/uiswing/components/list.html – GhostCat

Répondre

0

Pourquoi utilisez-vous DefaultListModel? Si vous voulez une liste simplement juste l'utiliser comme ceci

public void updateUserList() 
{ 
    jl_users = new JList<String>(users.toArray(new String[users.size()])); 
} 

ou tout droit

jl_users = new JList(users.toArray());