Swing oder SWT?

schnuffie

Erfahrenes Mitglied
Glaube, daß ich mich inzwischen einigermaßen gut mit Swing auskenne. Dennoch fällt mir auf, daß hier Jeder 3. von SWT "redet".

Was verbirgt sich dahinter? Wann nimmt man Swing, wann SWT? :confused:
Wer hat einen guten Link für einen Überblick in SWT für mich?
 
Mit SWT lassen sich auch GUIs erstellen. Im Gegensatz zu AWT/Swing, was 100% Java ist, besitzt SWT ne C-Komponente. Es werden die Widgets nicht mit Java "gemalt", sondern auf das Betriebssystem zugegriffen, was dann fürs Zeichnen zuständig ist. Dadurch ergeben sich Performance-Vorteile. Unter jedem Betriebsystem sieht die Oberfläche den nicht Java-Programmen deutlich ähnlicher. Es gibt keine Look&Feels in dem Sinne. Das Aussehen wird vom Betriebssystem vorgegeben. Ein programm sieht somit unter Linux anders aus als unter Windows.
Die Oberfläche von Eclipse wurde mit SWT erstellt. da kannst du also sehen, wie sowas aussieht.

Ich bastel seit ein paar Wochen mit SWT rum und kann es wiefolgt zusammenfassen:

* Es ist unkomfortabler als Swing. Es muss auf mehr geachtet werden (z.B. Freigeben von Ressourcen). Es gibt auch nicht so viele vorgefertigte Sachen wie in Swing.
* Beim Aufruf eines Konstruktors muss das Parent (der darüberliegende Container) übergeben werden. Die Container in SWT heißen übrigens Composite.
* Es sind manche Sachen nicht sehr intuitiv. Eine CheckBox ist beispielsweise ein Button, mit einer entsprechenden Stylekonstante.
* Die Dokumentation von SWT ist eher bescheiden. Literatur gibt es nicht wirklich viel und auf deutsch kein einziges Buch mit dem Schwerpunkt SWT.

Wenn du es verwenden willst, um zu lernen ist es sicherlich eine gute Herausforderung, aber um es in kleinen Tools zu verwenden, bei denen es nicht auf die Performance ankommt, ist Swing siherlich die einfachere Wahl...
 
Hallo!

AWT ist auch nicht "100%" Java (wenn man ganz genau sein will) denn dort sitzt auch noch heftigst C-Code dahinter allerdings ist der auf "den meißten" Plattformen verfügbar. Außerdem verwendet AWT zur Darstellung der einzelnen Komponenten auch Betriebssystemeigene Widgets...

* Es ist unkomfortabler als Swing. Es muss auf mehr geachtet werden (z.B. Freigeben von Ressourcen). Es gibt auch nicht so viele vorgefertigte Sachen wie in Swing.
... deshalb verwendet man ja auch SWT in den meisten Fällen nicht direkt sondern verwendet JFace was auf SWT aufsetzt.

Die Dokumentation von SWT ist eher bescheiden. Literatur gibt es nicht wirklich viel und auf deutsch kein einziges Buch mit dem Schwerpunkt SWT.

Also ich konnte mich bisher noch nicht über mangelnde Literatur beschweren, auf Eclipse.org gibt's im SWT Developers Corner genügend resourcen zum nachschauen
(API Doc's,Codesnippets, Mailinglisten, FAQ's, Foren etc.)

Es gibt derweil mehrere (gute) deutsche Eclipsebücher die SWT/JFace auch ausreichend behandeln dass man als "normaler" Entwickler sehr leicht einen
Einstieg finden kann.

Gruß Tom
 
Zuletzt bearbeitet:
Wenn man (so wie ich) bei 0 anfängt, ist es nicht gerade einfach die passenede Literatur zu finden. Bei Amazon gibts ne handvoll Bücher, alle ohne Bewertung.
In anderen Foren, verwenden die meisten User auch eher Swing als SWT, somit findet man dort auch keine Hilfe. Es kommen teilweise eher solche Kommentare: "Warum nimmst du nicht einfach Swing. Das gehts das ganze so..."
Die Eclipse-Seiten halte ich für den Einstieg eher ungeeignet. Wenn man ne Weile dabei ist, mag das was andres sein.

Ein Buch, was ich empfehlen kann ist dieses.

Es behandelt sehr viele SWT Widgets und wie man diese Einsetzt. Auch bekommt man einen guten Einstieg. Die Erklärungen sind kurz und für den Einstieg ausreichend. Der große Vorteil des Buchs ist, dass alles mit Code untermauert ist. Dieser ist recht gut verständlich.

@Tom: wenn du eine Übersicht über sämtliche Widgets und die dazugehörigen Stylekonstanten (mit Bildchen, wenn möglich) haben solltest, würde mir das weiterhelfen. Wenn nicht, werde ich mich demnächst selbst mal hinsetzen und ein solches Plakat entwerfen...
 
CyberTim hat gesagt.:
Ich bastel seit ein paar Wochen mit SWT rum und kann es wiefolgt zusammenfassen:

* Es ist unkomfortabler als Swing. Es muss auf mehr geachtet werden (z.B. Freigeben von Ressourcen). Es gibt auch nicht so viele vorgefertigte Sachen wie in Swing.
* Beim Aufruf eines Konstruktors muss das Parent (der darüberliegende Container) übergeben werden. Die Container in SWT heißen übrigens Composite.
* Es sind manche Sachen nicht sehr intuitiv. Eine CheckBox ist beispielsweise ein Button, mit einer entsprechenden Stylekonstante.
* Die Dokumentation von SWT ist eher bescheiden. Literatur gibt es nicht wirklich viel und auf deutsch kein einziges Buch mit dem Schwerpunkt SWT.

Wenn du es verwenden willst, um zu lernen ist es sicherlich eine gute Herausforderung, aber um es in kleinen Tools zu verwenden, bei denen es nicht auf die Performance ankommt, ist Swing siherlich die einfachere Wahl...

Wie Tom schon gesagt hat, JFace solltest du nutzen und einige "Nachteile" von SWT
verlieren sich.
Vom programmieren her ist Swing durchgänginger und logischer, das stimmt schon. Das kommt aber nicht daher das JFace/SWT so schlecht ist, sondern Swing meiner Meinung nach super designed wurde.

Buchempfehlung:
http://www.amazon.de/exec/obidos/AS...5590/sr=1-1/ref=sr_1_10_1/028-9773837-4269314

Habe ich zuhause liegen :) und bin sehr mit zufrieden. Ist zwar englisch, aber
ein Programmierer sollte der englischen Sprache soweit mächtig sein :)
 
Aha, schon mal recht aufschlußreich.

Habe mal paar Minuten ein paar Beispiele hinter Toms Link durchgeschaut.
SWT-Programmierung sieht ja wirklich ähnlich zu Swing aus. Die Komponenten dem Konstruktor zu übergeben ist zum Aufbau der Oberfläche alternativ zu den "add(...)"-Methoden eigentlich egal. Was nur, wenn man Komponenten austauschen will?
 
Zurück