Standard Widget Toolkit

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Standard Widget Toolkit
Entwickler Eclipse Foundation
Aktuelle Version 4.4
(6. Juni 2014)
Betriebssystem plattformunabhängig
Programmier­sprache 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.

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 Anwendung 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-Technik, 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]

Quellen[Bearbeiten]

  1. 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.