Hi Jungs,
Ich hab ein Problem,;( mit meiner JList meines Versuches ein Programmchen fürs Chaten zu programmieren
Leider habe ich schon alle mögliche Probiert habe es zuerst mit einer normalen ArrayList versucht ein anderer User eines Forums verwieß mich aber auf das DefaultModel! :rtfm:
In meiner Testumbebung hat das dann auch funktioniert
hab aber dem Model dort zuerst die Strings zugeordnet und dann erst die JList Erstellt mit dem Model!
Sprich so
Die Klasse UserList sieht so aus
Ich denke das Problem liegt daran das ich sobald ich die Gui für den Client erstelle, dort die "leere" Modelliste einfüge, und erst danach sobald die Gui erstellt ist und die Verbindung besteht den Username in die ArrayListe/Model eintrage....
Das Model kann ich mir über /showUsers anzeigen lassen sieht dann so aus
also das Steht in der Klasse Server
Ich weiß zu allen Clients zu schicken ist die die Optimalstelösung ich weiß aber leider nicht wie ich einen einzelnen Client ansprachen kann werd mich dazu aber noch erkundigen :bloed:
Dann wir z.b. der Steffanie, Steffanie1 ausgeben! Also das Model wird auch nach jedem User aktualisiert halt bloß nicht die JList, die behält immer den alten stand....
hab das komplette Projekt jetzt mal bei PasteBin hochgeladen
Server Klasse
Client Klasse
Login Window (StartWindow)
UserList Klasse
Ich hab ein Problem,;( mit meiner JList meines Versuches ein Programmchen fürs Chaten zu programmieren
Leider habe ich schon alle mögliche Probiert habe es zuerst mit einer normalen ArrayList versucht ein anderer User eines Forums verwieß mich aber auf das DefaultModel! :rtfm:
In meiner Testumbebung hat das dann auch funktioniert
hab aber dem Model dort zuerst die Strings zugeordnet und dann erst die JList Erstellt mit dem Model!
Sprich so
Java:
UserList user = new UserList();
user.model.addElement("Klaus");
userList = new JList(user.model);
Java:
package EigenerVersuch;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import javax.swing.DefaultListModel;
public class UserList {
static ArrayList<String> userList = new ArrayList<String>();
static DefaultListModel<String> model = new DefaultListModel<String>();
String username;
public void doListinModel(ArrayList<String> List){
model.clear();
for(String s:List){
model.addElement(s);
}
}
public String toString() {
return "" + userList;
}
public String getModel(){
return ""+model;
}
public void removeDuplicatedEntries(ArrayList<String> arrayList) {
HashSet<String> hashSet = new HashSet<String>(arrayList);
arrayList.clear();
arrayList.addAll(hashSet);
this.userList = arrayList;
}
}
Ich denke das Problem liegt daran das ich sobald ich die Gui für den Client erstelle, dort die "leere" Modelliste einfüge, und erst danach sobald die Gui erstellt ist und die Verbindung besteht den Username in die ArrayListe/Model eintrage....
Das Model kann ich mir über /showUsers anzeigen lassen sieht dann so aus
also das Steht in der Klasse Server
Java:
public void sendToAllClients(String message) {
Iterator it = list_clientWriter.iterator();
Client c = new Client();
while(it.hasNext()) {
PrintWriter writer = (PrintWriter) it.next();
String zeichenfolge ="/showUsers", z2 = "add";
UserList user = new UserList();
if(message.indexOf(zeichenfolge) >= 0){
writer.println("ArrayList: "+user.toString());
writer.println("Model: " +user.getModel());
writer.flush();
}else if(message.indexOf(z2)>=0){
int i = message.lastIndexOf("add")+3;
String username =message.substring(i);
user.userList.add(username);
user.removeDuplicatedEntries(user.userList);
user.doListinModel(user.userList);
writer.flush();
}
else {
writer.println(message);
writer.flush();
}
}
}
Dann wir z.b. der Steffanie, Steffanie1 ausgeben! Also das Model wird auch nach jedem User aktualisiert halt bloß nicht die JList, die behält immer den alten stand....
hab das komplette Projekt jetzt mal bei PasteBin hochgeladen
Server Klasse
Client Klasse
Login Window (StartWindow)
UserList Klasse
Zuletzt bearbeitet von einem Moderator: