Swing Multithreading
 
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern

Wer mit SpracheJava und Swing grafische Benutzeroberflächen designt, muss sich an die Single-Thread-Regel halten, nach der Swing-Widgets nach ihrer Realisierung nur noch über den Event-Dispatch-Thread (EDT) angesprochen werden dürfen. Typischerweise muss man bei lang laufenden Aktionen oder bei der Programmierung von voneinander unabhängigen Anwendungsteilen Klimmzüge machen, um die Regel nicht zu verletzen.

Randnotiz: Die Designer von Eclipse haben mit SWT einen anderen Weg beschritten. Wer viel Nebenläufigkeit und native Widgets benötigt, ist mit dem StandardWidgetToolkit SWT sicher besser bedient als mit Swing. Zum Threadingmodell von SWT siehe Eclipse Help, man suche dort nach "UI Thread".

Einschub: PrinzipienDerGrafikanzeigeInWindows

[Beginn dieses Kommentars auf o. g. Seite ausgelagert] Ich denke auch, mittlerweile, das Thread-Problem, was Swing hier unterstellt wird, ist ein generelles und liegt an der Art und Weise, wie paint() in Window s &Co organisiert werden muss. Ich denke, ich komme in der nächsten Zeit dazu, mich mit SWT beschäftigen zu können, habe bei swing andere Problemzonen entdeckt die einen Vergleich mit SWT lohnen. Schön wäre es schon, wenn hier jemand was schreibt der dazu was sagen kann. Eclipse ist doch das Standard-Tool! ... --Hartmut Schorrig

Obwohl Thread-Probleme im GUI-Bereich allgemeiner Natur sind, so gibt es doch ein paar sehr spezifische Dinge bzgl. Swing und dieser Thematik.

Diskussion

In den letzten Wochen habe ich die Swing Oberfläche meines Fraktal-Generators auf Multithreading umgestellt. Alle aufwendigen Berechnungen laufen jetzt als seperate Threads im Hintergrund. Auch aufwendige Zeichenoperationen sind jetzt als einzelne Threads implementiert. Jetzt ist es möglich über den "Full Screen Window" Mode mehrere Fenster zu öffnen und mit diesen unabhängig zu arbeiten. Aus einem Java Applet ist dadurch eine Applikation geworden, auf die man durch das Aufrufen einer HTML-Seite zugreifen kann. Mann kommt dadurch der ursprünglichen Vison von SUN und Java die Applikationen nicht mehr auf dem lokalen Rechner zu lagern, sondern bei Bedarf aus dem Netz herunter zu laden, sehr nahe.

Vielen Dank an SaschaDördelmann für die Tipps zu Swing und Multi Threading.

Links

Grundlegende Artikel Von SUN zum Thema Threads und Swing

Weitere Links
KategorieTechnik KategorieJava KategorieGrafikProgrammierung
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Text dieser Seite ändern (zuletzt geändert: 24. März 2010 11:06 (diff))
Suchbegriff: gesucht wird
im Titel
im Text