SWT (standard widget toolkit)

Das Standard Widget Toolkit (SWT) ist ein Framework, um in Java eine grafische Benutzeroberfläche (GUI) zu entwickeln. Dazu setzt SWT auf der nativen des jeweiligen Betriebssystems auf und stellt eine Anzahl elementarer GUI-Klassen bereit. Dadurch besitzen alle SWT-Komponenten den sogenannten nativen Look&Feel des Betriebssystems - SWT-Komponenten sind dadurch aber nicht plattformunabhängig. SWT bildet häufig nur die grundlegenden grafischen Funktionen ab, die das Betriebssystem zur Verfügung stellt. Nur in seltenen Fällen werden fehlende Betriebssystemfunktionen von SWT emuliert. Für den Zugriff auf die nativen Funktionen des Betriebssystems nutzt SWT das in Java implementierte Java Native Interface (JNI).


Für komplexere grafische Benutzeroberflächen steht die Bibliothek JFace zur Verfügung, die im Gegensatz zu SWT nicht direkt auf der nativen Plattform aufsetzt, sondern die Klassen und Methoden des SWT verwendet. Durch die direkte Einbettung in die jeweilige Laufzeitumgebung und der besseren Performance ist SWT im Vorteil gegenüber der grafischen Java-Bibliothek Swing. Nachteilig ist aufgrund der Abhängigkeit von einer Plattform, dass einzelne Funktionen in Ihrem Verhalten auf verschiedenen Plattformen voneinander abweichen. Eine komplexe Anwendung für eine grafische Benutzeroberfläche auf Basis von SWT ist die Eclipse Rich Client Platform (RCP).

SWT als Entwicklungskomponente von Eclipse

SWT war ursprünglich ausschließlich eine integrierte Komponente der Entwicklungsumgebung Eclipse. Erst später wurde SWT aus diesem Verbund herausgelöst und steht nunmehr als Alternative zur Java-Bibliothek Swing zur Verfügung. Bei SWT werden vergleichbar mit AWT die nativen Komponenten der verschiedenen Plattformen wie Windows, Linux, MAC OS X oder verschiedene Unix-Varianten über das Java Native Interface (JNI) angesprochen, während beispielsweise AWT die systemspezifischen Komponenten durch eine eigene Implementierung überdeckt. Aufgrund der nativen Struktur gilt SWT als leichtgewichtig sowie als performant und findet auch Anwendung in mobilen Endgeräten wie Handys und PDAs. Jedoch müssen aufgrund der engen Verbindung zu einer Plattform, SWT-Applikationen mit einer dynamischen Bibliothek - unter Windows sind das die *.dll-Dateien - ausgeliefert werden. Seine bekannteste Anwendung findet SWT in der Eclipse Rich Client Platform, welche die Basis für eine Fülle von sogenannten reichen Benutzeroberflächen bildet - einsetzbar sind diese sowohl in Verbindung mit Desktop- wie auch mit Web-Anwendungen.

Für die Entwicklung von SWT-Komponenten ist die Einbindung u.a. folgender Packages in den Java-Code Voraussetzung, deren vollständige Zusammenstellung unter dem unten genannten Link verfügbar ist. Hier sollen lediglich die grundlegenden Möglichkeiten des SWT Frameworks aufgezeigt werden.

org.eclipse.swt. Beinhaltet spezifische Konstanten und Exceptions.

org.eclipse.swt.accessibility. Beinhaltet Klassen für behindertengerechte GUIs.

org.eclipse.swt.awt. Hierdurch ist die Einbettung von AWT-Elementen in das SWT gegeben.

org.eclipse.swt.browser. Beinhaltet die Klassen für die Implementierung des Browser-Widget.

org.eclipse.swt.custom. Beinhaltet Widgets für die Eclipse-Plattform.

org.eclipse.swt.widgets. Integriert werden hier alle Widget-Klassen und stellt damit die Kern-Funktionalität von SWT zur Verfügung.

org.eclipse.swt.dnd. Beinhaltet Funktionen für z.B. für Drag-und-Drop oder die Zwischenablage.

org.eclipse.swt.ole.win32. Unterstützt OLE für 32-Bit-Windows-Betriebssysteme.

org.eclipse.swt.printing. Unterstützt die Ausgabe auf dem Drucker.

org.eclipse.swt.events. Realisiert die Klassen für die Ereignisbehandlung ( Events) und Interfaces (Listener).

Ein Vorteil von SWT-Applikationen ist deren direkte Einbettung in die Ablaufumgebung der jeweiligen Plattform. Die SWT-Widgets agieren hier als Adapter für die diesbezüglichen Dienste der Plattform. Somit unterscheiden sich SWT-Applikationen nicht von der nativen Oberfläche der Plattform. Bei Anwendung der Swing-Schnittstellen ist das nicht immer so gegeben. Gleiches gilt sinngemäß auch für die Funktionen der Ereignisbehandlung. Zudem nimmt der Standard Widget Toolkit (SWT) für sich Anspruch, weniger System-Ressourcen zu benötigen. Dem stehen aber auch eine Reihe von Nachteilen gegenüber:

  • Da SWT direkt die Ressourcen des Betriebssystems nutzt, erfordert SWT eine eigene Verwaltung dieser Ressourcen. Sobald diese also nicht mehr benötigt werden, müssen sie mit dispose() explizit wieder freigegeben werden.
  • Eine SWT-Applikation ist nicht unabhängig von der Plattform einzusetzen, für welche sie implementiert wurde.
  • SWT ist in der Variabilität seines Erscheinungsbildes begrenzt.
Jedoch schließen sich SWT und Swing nicht gegenseitig in ihrer Verwendung aus, vorteilhaft kann beispielsweise die Kombination grafischer Möglichkeiten genutzt werden.

http://www.eclipse.org/swt

Informationen zum Artikel
Deutsch:
Englisch: standard widget toolkit - SWT
Veröffentlicht: 28.10.2013
Wörter: 698
Tags: #Softwarekomponenten
Links: Adapter, AWT (abstract Windowing toolkit), BS (Betriebssystem), Bibliothek, Dienst