the-wright-thing.de
Swing
http://www.the-wright-thing.de/swing.html

© 2009 the-wright-thing.de
 

Was ist Swing?

Swing ist ein Teil der Java Foundation Class, sprich einer Ansammlung von Bibliotheken zur Programmierung von grafischen Benutzerschnittstellen, die bis zu diesem Zeitpunkt der Realisierung dieser Applikation durch eine Klassenbibliothek betrieben wurde, die plattformbezogen agierte. Es wird mit dem Sequel import javax.swing.*; initialisiert. Netscape schaffte mit Unterstützung der Firma Sun eine neue gemeinsame Basis für alle Elemente der Benutzeroberfläche auf der alle Grafics User Interface, Komponenten wie Menüs, Listen und Schaltflächen, gezeichnet werden können. Dabei wird alles in Komponenten, Einheiten die dem Anwender Informationen oder eine Funktion anbieten, oder Containern, die andere Einheiten in sich aufnehmen und anzeigen um verschiedene Ebenen zu erzielen.
Swing wurde erstmals 1997 als externe Bibliothek ausgeliefert und ist seit 1998 fester Bestandteil der Java-Umgebung. Aus der am Anfang nicht besonders gut angenommenen Erweiterung der Java-Familie ist durch verbesserte Hardwareunterstützung, speziell der Grafikkartenbeschleunigungsfunktion und verbesserte Klassenbibliotheken ein gefragtes, vor allem unabhängiges, Programmier-Utensil geworden, das mit so einigen Erweiterungen genau an die optischen Vorstellungen des Benutzers angepasst werden kann.

Was ist das Besondere?


Durch eine vollständige Implementierung des Erscheinungsbildes der einzelnen Oberflächenkomponenten, werden keine Funktionen des Betriebssystems mehr benutzt, sie zeichnen sich am Bildschirm des Users ab und ebnen somit den Weg in die, diesbezügliche, Barrierefreiheit. Dieser Durchbruch macht Swing regelrecht prädestiniert für komplexe und objektorientierte Anwendungen, bei der die Variablen, gewohnt über Klassen und Sub-Klassen vererbt werden. Die Beschreibungen werden dabei in XML-Dateien geschrieben. Dadurch ist es völlig irrelevant, ob die Komponente vom System (Windows, Mac, Solaris) zur Verfügung gestellt wird. Da sie nun keine Anwendung mehr für nur ein Betriebssystem ist, kann sie durch bestimmte Look-and-Feels-Modifikationen im Erscheinungsbild an das Verwendete einfach angepasst werden.

Was ist das relevante Problem von Swing?

Das große Problem ist das Multithreading. Dabei kann es zu Wechselwirkungen zwischen den verschiedenen Ausführungen (Threads) kommen, denn die gesamte Ereignisbearbeitung läuft über die normale Java-Ereignisprozeduren ab. Zur Lösung wurden zwei Methoden entwickelt, die Abhilfe leisten sollen. Zum Einen die invokeLater-Methode, die das ausführbare Objekt in die Ereigniswarteschlange reiht und noch vor dessen Ausführung in den Quellcode zurückkehrt, also den aufgerufenen Thread nicht blockiert und die invokeAndWait-Methode, die es ebenfalls einreiht, aber abwartet, bis es abgearbeitet wird, also den Thread blockiert.