Hallo 
Ich habe ein Problem in Java, genauer gesagt in Swing. Ich habe eine Klasse "MainUI":
Jetzt habe ich eine Klasse die von Thread erbt und die Instanz MainUI mitbekommt und in dieser füge ich dem Model Elemente hinzu:
Das funktioniert soweit, ich bekomme alles in der Liste angezeigt, sobald der Thread abgeloffen ist. Das Problem ist nun: Wenn ich eine Variable mit addElement dem Model hinzufüge, wird diese nicht gerendert. Sie befindet sich zwar in der Liste, wird aber nicht angezeigt:
Wird zwar hinzugefügt, aber von der JList nicht gerendert. Auch ein repaint() oder ein Neusetzen des ListModels funktioniert nicht.
Was mache ich falsch? Eine Exception gibt es auch keine.
EDIT OK es ist völliger Zufall, ob die Werte dann gerendert werden oder nicht. Auch ein repeaint() nach dem füllen des ListModels bringt nichts. Aber es muss doch eine Lösung geben?
Ich habe ein Problem in Java, genauer gesagt in Swing. Ich habe eine Klasse "MainUI":
Java:
class MainUI extends JFrame {
private JList jList;
private DefaultListModel model;
public MainUI() {
model = new DefaultListModel();
jList = new JList();
jList.setModel(model;)
}
public DefaultListModel getModel() {
return this.model;
}
}
Jetzt habe ich eine Klasse die von Thread erbt und die Instanz MainUI mitbekommt und in dieser füge ich dem Model Elemente hinzu:
Java:
class ThreadTest extends Thread {
private MainUI mainUI;
public ThreadTest(MainUI mainUI) {
this.mainUI = mainUI;
}
public void run() {
mainUI.getModel().addElement("test");
}
}
Das funktioniert soweit, ich bekomme alles in der Liste angezeigt, sobald der Thread abgeloffen ist. Das Problem ist nun: Wenn ich eine Variable mit addElement dem Model hinzufüge, wird diese nicht gerendert. Sie befindet sich zwar in der Liste, wird aber nicht angezeigt:
Java:
// Wird gerendert
String test = "test";
mainUI.getModel().addElement(test);
// Wird NICHT gerendert
String temp2 = " foo";
String temp = "test" + temp2;
mainUI.getModel().addElement(test);
Wird zwar hinzugefügt, aber von der JList nicht gerendert. Auch ein repaint() oder ein Neusetzen des ListModels funktioniert nicht.
Was mache ich falsch? Eine Exception gibt es auch keine.
EDIT OK es ist völliger Zufall, ob die Werte dann gerendert werden oder nicht. Auch ein repeaint() nach dem füllen des ListModels bringt nichts. Aber es muss doch eine Lösung geben?
Zuletzt bearbeitet: