Swing und IO Operationen

Rudolf

Bekanntes Mitglied
Hi,

Man nutzt ja SwingUtils.invokeLater(new Runnable()); für Swing-Operationen, um Concurrency-Probleme auszuschließen. Oft ist es aber so, dass man eine Netzwerkoperation ausführt, wie z.B. das Herunterladen einer datei und den Inhalt in einem JTextArea ausgeben möchte. Wie handelt man Netzwerkoperationen mit Swing am besten? Gibts dafür ein Konzept?
 
S

SlaterB

Gast
append

public void append(String str)

Appends the given text to the end of the document. Does nothing if the model is null or the string is null or empty.

This method is thread safe, although most Swing methods are not. Please see Threads and Swing for more information.
im Zweifel paar Zeilen sammeln und nur ab und zu einfügen, so wäre es bei Zeilen eines TableModel angebracht,
allerdings bisschen fraglich was denn so lange dauern soll bei heutzutage MB pro Sekunde,
soll das alles in die GUI rein?
 

Marco13

Top Contributor
Den verwendet man i.d.R. für "viele, kurz laufende" Tasks. Der hat nichts mit der Swing-Interaktion zu tun. Grundsätzlich könnte man (wenn das angebracht ist) vom SwingWorker aus auch einen ExecutorService verwenden. Der SwingWorker zielt darauf ab, diesen (wegen der Single-Therad-Rule in Swing notwendigen) Ablauf zu Steuern, dass man eine Aufgabe von einem anderen Thread erledigen läßt (und dabei das GUI nicht blockiert) und ggf. das GUI auf dem richtigen Thread über Zwischen- und Endergebnisse informiert (in deinem Fall der Text, der in die TextArea kommt)
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...

Neue Themen


Oben