JList updaten

Marc79

Mitglied
Hi zusammen,

wieder einmal habe ich eine Frage.

Ich verwende zur Laufzeit eine JList und ein ListModel

Code:
DefaultListModel log = new DefaultListModel();

logList.setModel(log);
log.addElement("Manueller Import gestartet");

irgendwann läuft mein Import und ich möchte bestimmte Ereignisse anzeigen lassen.
Bsp.:

Code:
[...]
i=0;
while (zeile != null)
{
     i++;
     log.addElement("irgendeintext" + i );
}
[...]

Wenn jetzt die Schleife durchgelaufen ist, dann werden alle Inhalten der JList auch angezeigt. Wie aber bekomme ich die Inhalte unverzüglich nach deren add angezeigt.

Mit repaint() hat es leider nicht geklappt.
Jemand eine Idee?

Danke und Gruß
Marc
 
Da wuerd mir spontan nur einfallen das Aendern der Liste in einem anderen Thread laufen zu lassen. Ist nur die Frage ob du von 2 Threads darauf zugreifen darfst. Mhm...
 
habs nicht getestet, aber würd spontan sagen

Code:
jList.setVisible(false);
//objekt adden
jList.setVisible(true);
 
Hallo,

du mußt den Befehl zum neuzeichnen der Liste (egal ob mit revalidate() oder updateUI() oder ähnliches) in einem SwingUtilities.invokeAndWait() ablaufen lassen.

MfG
hansmueller
 
Hallo zusammen,

danke vorab für eure Ideen.
Ich weiß nicht, ob es an mir liegt, aber JAVA ist zum Teil ganz schön umständlich :)

Gibt es wirklich keine einfach Möglichkeit ein Steuerelement upzudaten? oder zu repainten? oder zu refreshen? Das gibt es ja in so ziemlich jeder Programmiersprache ;-)

@hansmueller:
SwingUtilities.invokeAndWait() klingt zwar erstmal interessant, doch da muss ich mich wohl einlesen, wie man das richtig benutzt.

Gruß Marc
 
Vielen Dank Tsunamii,

der zweite Link war perfekt erklärt.
Und nun läuft meine App auch sauber!

Vielen Dank!
Dies ist eines der besten Foren ...sollte mal erwähnt sein******

Gruß Marc
 

Neue Beiträge

Zurück