Swing JList - Element richtig hinzufügen

KyleCorver

Mitglied
Hallo,

ich sitze derzeit an einem kleinen Problem mit einer JList. Ich habe eine Liste, in der einfache Strings zur Auswahl hinzugefügt werden sollen. Ab und zu funktioniert der ganze Spaß auch, aber ich habe häufig das Problem, dass ich eine leere Liste am Rand sehe. Meine Methode um ein Element hinzuzufügen sieht folgendermaßen aus:
Java:
private JList Liste;
...
Liste = new JList(new DefaultListModel<String>());
...
public boolean AddElement(String text){		
		DefaultListModel<String> m;
		try{
			m = (DefaultListModel<String>)Liste.getModel();
		}
		catch(ClassCastException e){
			return false;
		}
		m.addElement(text);
		
		PrintText(null, "Element hinzugefügt: "+text);
		return true;
	}
Es tritt keine Exception oder ähnliches auf, ab und zu ist die Liste einfach leer.
Seht ihr hier irgendeinen Fehler?

Freue mich über eure Hilfe 😀

MfG Kyle
 
Zuletzt bearbeitet:
Schwer zu sagen, woran es liegt. Warum definierst Du das DefaultModel nicht genauso wie die JList als Instanzvariable?

Danke für den Tipp, hab ich probiert, kommt auf genau dasselbe raus =(

Das ganze ist Teil einer kleinen GUI für ein Chat-Programm, der Client, in dem das vorkommt, hat allerdings nur einen einzigen Thread. Von dem her vermut ich, dass es an was anderem liegt.
 
Ein einziger Thread kann kaum sein. Main und EDT sind es mindestens. Mach mal ein
Java:
public boolean AddElement(String text){     
    System.out.println(Thread.currentThread());
und schau was da steht. Falls es nicht der EDT ist, kannst du den Aufruf in SwingUtilities.invokeLater einwickeln (das mit dem boolean return ist dann blöd, falls du das unbedingt brauchst...)
 

Zurück
Oben