Standard Widget Toolkit
| Standard Widget Toolkit | |
|---|---|
| Entwickler | Eclipse Foundation |
| Aktuelle Version | 4.2.1 (14. September 2012) |
| Betriebssystem | plattformunabhängig |
| Programmiersprache | Java |
| Kategorie | Grafikbibliothek |
| Lizenz | EPL |
| www.eclipse.org/swt | |
Das Standard Widget Toolkit (SWT) ist eine Programmbibliothek für die Erstellung grafischer Oberflächen mit Java.
Inhaltsverzeichnis |
SWT [Bearbeiten]
SWT wurde im Jahr 2001 von IBM für die Entwicklungsumgebung Eclipse entwickelt und wird kontinuierlich gepflegt. SWT nutzt dabei im Gegensatz zu Swing die nativen grafischen Elemente des Betriebssystems – wie das AWT von Sun – und ermöglicht somit die Erstellung von Programmen, die eine Optik vergleichbar mit „nativen“ Programmen aufweisen.
Allerdings leidet SWT auf einigen Nicht-Windows-Plattformen unter Effizienzproblemen, da es viele Merkmale eines Basistoolkits voraussetzt, welche – wenn nicht vorhanden – emuliert werden müssen (z. B. Z-Ordnung auf GTK+). Zudem sind die SWT-Bibliotheken nicht standardmäßig auf dem ausführenden System verfügbar und müssen mit der Applikation ausgeliefert werden, während Swing Bestandteil der Java-Laufzeitumgebung (Java Runtime Environment, JRE) ist.
Bei SWT werden native Widgets durch dünne Wrapper eingebunden, anstatt Teile der Funktionalität in native Peer-Klassen auszulagern. Wegen der Verwendung dieser Ressourcen werden die SWT-Elemente „schwergewichtig“ genannt, im Gegensatz zu den „leichtgewichtigen“ Komponenten der Swing-Technologie, die alle grafischen Elemente selbst erzeugt.
SWT kommt in einer ganzen Reihe von Anwendungen zum Einsatz, beispielsweise Eclipse selbst, Vuze und RSSOwl.
Geschwindigkeit [Bearbeiten]
SWT wurde als reaktionsschnellere und kompaktere Konkurrenz zu Swing entwickelt. Leistungsvergleiche zeigen allerdings, dass SWT nicht schneller als Swing ist und die Resultate stark vom Kontext und der Testumgebung abhängen.[1]
JFace [Bearbeiten]
Das UI-Toolkit JFace setzt aus den von SWT gelieferten Basiskomponenten komplexere Widgets zusammen und stellt eine Abstraktionsschicht (Viewer) für den Zugriff auf die Komponenten bereit. JFace erleichtert die Entwicklung von Desktop-Anwendungen auf SWT-Basis erheblich. Die wichtigsten Klassen von JFace sind:
- Viewers zur Verbindung von GUI-Elementen zum Datenmodell
- Actions zur Entkopplung von GUI-Events und der auszuführenden Aktion
- Image- und Font-Registries zur Verwaltung von Bild- und Font-Ressourcen
- Komplexere GUI-Elemente wie Wizards und Dialoge
Mittlerweile gibt es bei JFace einige Abhängigkeiten zu Eclipse-Bibliotheken, so dass neben SWT auch einige JAR-Dateien aus dem Eclipse-Projekt installiert werden müssen. Eclipse ist die wohl bekannteste Anwendung, die JFace einsetzt.
Verfügbare Systeme und Architekturen [Bearbeiten]
1 Seit SWT 3.5. Offenbar nur noch für x86 und x86_64, aber nicht mehr für PowerPC verfügbar.
Weblinks [Bearbeiten]
- Standard Widget Toolkit Project
- SWT-Beispiele und Beispiele zur nativen Kompilierung mit GCJ
- Deutsche Einführung zu SWT und JFace
Quellen [Bearbeiten]
- ↑ Križnar Igor: SWT Vs. Swing Performance Comparison (PDF) cosylab.com. 3. März 2006. Abgerufen am 16. September 2009: „Initial expectation before performing this benchmark was to find SWT outperform Swing. This expectation stemmed from greater responsiveness of SWT-based Java applications (e.g., Eclipse IDE) compared to Swing-based applications. However, this expectation could not be quantitatively confirmed.“