2016-07-25 17 views
0

Ich habe ein Client -> Server-Chat-Room-System erstellt, und ich habe eine Liste der derzeit verbundenen Benutzer, die derzeit auf einen Klick in einem JTextField angezeigt wird, funktioniert derzeit gut und zeigt die Zeichenfolge Array. Allerdings habe ich meiner GUI eine weitere Komponente hinzugefügt, die eine JList ist. Ich habe versucht, eine Methode namens updateUserList zu erstellen, um die JList mit den verbundenen Benutzern zu aktualisieren. Ich habe versucht, ein DefaultListModel vom Typ String zu verwenden, aber dies zeigt nichts in der JList an und ich bin mir nicht sicher warum.Binding String ArrayList zu JList

Unten ist die updateUserList Methode, die ich erstellt haben:

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

Bitte beachten Sie, dass Modell, Benutzernamen und jl_users global definiert sind, deshalb habe ich sie nicht in der Post enthalten.

+0

Es gibt nicht genug Code. Für den Anfang scheint es seltsam, dass Ihr ** Update ** -Code ein völlig neues JList-Objekt erstellt. Ich würde eher erwarten, dass Ihre Anwendung eine ** feste ** JList enthält; und dass Sie nur das Modell dieser JList aktualisieren. Das ist der Kern des Modellansatzes: Sie werfen Ihre UI-Komponenten nicht jedes Mal weg, wenn Sie etwas aktualisieren. Mit anderen Worten: Bitte wenden Sie sich an das Helpcenter, um zu verstehen, wie Sie "stuff aint working questions" schreiben können, da Sie einfach nicht genügend Informationen zur Verfügung stellen, damit wir Ihnen helfen können. – GhostCat

+0

Mein Code enthält ein neues JList-Objekt, da ich den Eindruck hatte So fügen Sie Elemente zur JList hinzu – DaveDavidson

+0

Sie fügen einer Liste keine neuen Elemente hinzu, indem Sie eine neue Liste erstellen, sondern erstellen die Liste zunächst und später fügen Sie Elemente der Liste hinzu oder entfernen sie. Vielleicht möchten Sie einfach ein Tutorial zu diesem Thema lesen? https://docs.oracle.com/javase/tutorial/uiswing/components/list.html – GhostCat

Antwort

0

Warum verwenden Sie DefaultListModel? Wenn Sie eine einfach Liste wollen es einfach verwenden wie dieses

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

oder gerade nach vorne

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