{"id":4719,"date":"2025-08-23T11:43:40","date_gmt":"2025-08-23T09:43:40","guid":{"rendered":"https:\/\/www.tutego.de\/blog\/javainsel\/?p=4719"},"modified":"2025-08-23T11:43:40","modified_gmt":"2025-08-23T09:43:40","slug":"inselupdate-ueber-das-standard-widget-toolkit-swt","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2025\/08\/inselupdate-ueber-das-standard-widget-toolkit-swt\/","title":{"rendered":"Inselupdate: \u00dcber das Standard Widget Toolkit (SWT)"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p class=\"MsoNormal\">In den sp\u00e4ten 1990er-Jahren entstand mit dem <span class=\"Begriff\">Standard Widget Toolkit (SWT)<\/span><!-- [if supportFields]><span\nstyle='mso-element:field-begin'><\/span> XE &quot;Standard Widget Toolkit&quot; <![endif]--><!-- [if supportFields]><span\nstyle='mso-element:field-end'><\/span><![endif]--><!-- [if supportFields]><span\nstyle='mso-element:field-begin'><\/span><span\nstyle='mso-spacerun:yes'>\u00a0<\/span>XE &quot;SWT&quot; <![endif]--><!-- [if supportFields]><span\nstyle='mso-element:field-end'><\/span><![endif]--><span style=\"mso-spacerun: yes;\">\u00a0<\/span>ein weiterer Ansatz f\u00fcr Java-Oberfl\u00e4chen. IBM startete die Entwicklung 1998, als das Unternehmen eine neue IDE als Nachfolger von <i style=\"mso-bidi-font-style: normal;\">VisualAge for Java<\/i> plante \u2013 aus diesem Projekt ging sp\u00e4ter die <i style=\"mso-bidi-font-style: normal;\">Eclipse-Plattform<\/i> hervor.<\/p>\n<h3>Ursprung und Architektur<\/h3>\n<\/p>\n<p class=\"MsoNormal\">F\u00fcr Eclipse ben\u00f6tigte IBM leistungsf\u00e4hige GUI-Komponenten. Doch Ende der 1990er war Swing weder schnell noch speichereffizient oder stabil genug, und AWT galt bereits als veraltet. IBM entschied sich daher f\u00fcr ein eigenes Toolkit, das sich direkt auf die nativen GUI-Elemente des Betriebssystems st\u00fctzt. SWT verzichtet vollst\u00e4ndig auf AWT- oder Java-2D-Klassen \u2013 selbst elementare Zeichenoperationen erfolgen \u00fcber das zugrunde liegende Betriebssystem.<\/p>\n<p class=\"MsoNormal\">Zu den unterst\u00fctzten Funktionen geh\u00f6ren Standard-Widgets wie Buttons, Labels, Listen oder Tabellen, aber auch Drag &amp; Drop, Zwischenablage, Druckunterst\u00fctzung sowie (unter Windows) eine ActiveX-Integration. Da SWT eng mit dem nativen System verkn\u00fcpft ist, m\u00fcssen Anwendungen stets mit einer passenden nativen Bibliothek ausgeliefert werden (unter Windows etwa eine DLL). SWT ist kein Teil von Java SE, sondern wird als eigenst\u00e4ndige Bibliothek \u00fcber das Eclipse-Projekt bereitgestellt, siehe <span class=\"URL\">https:\/\/eclipse.dev\/eclipse\/swt\/<\/span>.<\/p>\n<h3>Einsatz und Erweiterungen<\/h3>\n<p class=\"MsoNormal\">Obwohl SWT urspr\u00fcnglich ausschlie\u00dflich f\u00fcr die Eclipse-IDE gedacht war, wurde es bald von Eclipse entkoppelt und ist seither als allgemeines UI-Toolkit verf\u00fcgbar. Besonders auf mobilen und eingebetteten Ger\u00e4ten der fr\u00fchen 2000er-Jahre (z.\u00a0B. PDAs mit Windows CE) erwies es sich als sehr performant, da es auf einem kleinen nativen Kern basiert und vergleichsweise leichtgewichtig ist.<\/p>\n<p class=\"MsoNormal\">Auf Basis von SWT entstand zudem die <span class=\"Begriff\">Eclipse Rich Client Platform (RCP)<\/span><!-- [if supportFields]><span style='mso-element:\nfield-begin'><\/span> XE &quot;Eclipse Rich Client Platform (RCP)&quot; <![endif]--><!-- [if supportFields]><span\nstyle='mso-element:field-end'><\/span><![endif]--><span style=\"mso-spacerun: yes;\">\u00a0<\/span>\u2013 ein Framework f\u00fcr modulare Desktop-Anwendungen. RCP stellt Funktionen wie Plug-in-System, Nutzerkonfiguration, Update- und Distributionsmechanismen bereit und wird in vielen Eclipse-basierten Tools eingesetzt.<\/p>\n<h3>Bewertung und heutige Relevanz<\/h3>\n<\/p>\n<p class=\"MsoNormal\">Ein klassisches Argument f\u00fcr SWT war, dass Oberfl\u00e4chen damit wie native Anwendungen wirken, da SWT echte System-Widgets nutzt. In der Praxis zeigte sich jedoch, dass SWT-Oberfl\u00e4chen an einigen Stellen vom Look &amp; Feel der Plattform abweichen. Diese Abweichungen im Erscheinungsbild spielen heute jedoch kaum noch eine Rolle: Software-Oberfl\u00e4chen \u00e4ndern ihr Design ohnehin regelm\u00e4\u00dfig \u2013 etwa durch den radikalen Wechsel von <i style=\"mso-bidi-font-style: normal;\">Microsoft Office 2003<\/i> zu <i style=\"mso-bidi-font-style: normal;\">Office 2007<\/i> mit dem Ribbon-Men\u00fc, den \u00dcbergang von <i style=\"mso-bidi-font-style: normal;\">Windows 10<\/i> zu <i style=\"mso-bidi-font-style: normal;\">Windows 11<\/i> mit neuer Symbolsprache und zentrierter Taskleiste oder den Wandel von <i style=\"mso-bidi-font-style: normal;\">macOS Aqua<\/i> mit bunten Candy-Buttons hin zu den heutigen minimalistischen Designs. Ein plattformweit einheitliches Aussehen ist l\u00e4ngst nicht mehr oberstes Ziel.<\/p>\n<p class=\"MsoNormal\">Heute wird SWT haupts\u00e4chlich in der Eclipse-Welt und in einigen spezialisierten Unternehmensanwendungen genutzt. In der breiteren Java-Community gilt JavaFX (OpenJFX) als aktueller Standard f\u00fcr Desktop-GUIs, die in Java programmiert sein sollen.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; In den sp\u00e4ten 1990er-Jahren entstand mit dem Standard Widget Toolkit (SWT)\u00a0ein weiterer Ansatz f\u00fcr Java-Oberfl\u00e4chen. IBM startete die Entwicklung 1998, als das Unternehmen eine neue IDE als Nachfolger von VisualAge for Java plante \u2013 aus diesem Projekt ging sp\u00e4ter die Eclipse-Plattform hervor. Ursprung und Architektur F\u00fcr Eclipse ben\u00f6tigte IBM leistungsf\u00e4hige GUI-Komponenten. Doch Ende der [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[11],"tags":[],"class_list":["post-4719","post","type-post","status-publish","format-standard","hentry","category-insel"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=4719"}],"version-history":[{"count":1,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4719\/revisions"}],"predecessor-version":[{"id":4720,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4719\/revisions\/4720"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=4719"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=4719"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=4719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}