Das Standard Widget Toolkit (SWT) ist ein GUI-Toolkit für die Erstellung grafischer Oberflächen mit Java.

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

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

JFace 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: 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 Bildern und Schriftarten Komplexere GUI-Elemente wie Wizards und Dialoge

Verfügbare Systeme und Architekturen mini|Die gleiche Anwendung unter Linux mini|… und unter Mac Aktuelle Versionen unterstützen folgende Betriebssysteme, GUI-Toolkits und CPU-Architekturen: Windows: Win32 (x64) Linux GTK (x64 und ARM64) macOS: Cocoa (x64 und ARM64)

Zu den historischen Plattformen zählen: Windows Win32 (x86-32) Linux GTK (PowerPC, System/390) Motif (x86-32) Solaris GTK (x64, SPARC) HP-UX GTK (IA64) AIX GTK (PowerPC) Motif (PowerPC) Mac OS X Carbon Windows CE ARM Pocket PC (J2ME) QNX Photon (x86-32)

Weblinks

Einzelnachweise

Kategorie:Eclipse Kategorie:GUI-Toolkit Kategorie:Java-Bibliothek