| Standard Widget Toolkit | |
|---|---|
Beispielanwendung unter Windows 10 | |
| Basisdaten | |
| Hauptentwickler | Eclipse Foundation |
| Entwickler | Stephen Northover |
| Aktuelle Version | 4.34.0 (20. November 2024) |
| Betriebssystem | plattformunabhängig |
| Programmiersprache | Java |
| Kategorie | GUI-Toolkit |
| Lizenz | Eclipse Public License 2.0 |
| www.eclipse.org/swt/ | |
Das Standard Widget Toolkit (SWT) ist ein GUI-Toolkit für die Erstellung grafischer Oberflächen mit Java.
SWT wurde von IBM für die Entwicklungsumgebung Eclipse entwickelt. Das Designprinzip geht jedoch auf IBM VisualAge zurück, das in Smalltalk geschrieben war. Es nutzte mit den Common Widgets (CW) eine gemeinsame API für alle Plattformen, die native Widgets vorsah, um das Look and Feel des Betriebssystems zu erhalten und für eine gute Performance zu sorgen.
Bei SWT werden native Widgets durch dünne Wrapper eingebunden, anstatt Teile der Funktionalität in native Peer-Klassen auszulagern wie etwa bei AWT. Der Nachteil ist, dass jede Schicht für jedes Betriebssystem einzeln implementiert und mit der jeweiligen API interagiert werden muss. Zudem müssen Ressourcen des Betriebssystems nach Verwendung manuell wieder freigegeben werden, da sie nicht mit der Garbage Collection der Java Virtual Machine verbunden sind. SWT verwendet das Model View Controller Entwurfsmuster. Auf der Basis von SWT lassen sich auch eigene Widgets erstellen. Die Betriebssystemsschicht bleibt dabei abstrahiert und wird nicht durchgereicht. Die Verwendung von SWT erfolgt ausschließlich über dessen Java-Schnittstelle.
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. Die Entwickler von Eclipse verweisen darauf, dass die hochabstrahierte Architektur und das auf allen Plattformen gleiche Aussehen von Swing eine andere Herangehensweise mit anderen Designzielen sei und beide Toolkits jeweils unterschiedliche Trade-offs besäßen.
Das GUI-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. Die wichtigsten Klassen von JFace sind:


Aktuelle Versionen unterstützen folgende Betriebssysteme, GUI-Toolkits und CPU-Architekturen:
Zu den historischen Plattformen zählen: