PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Standard Widget Toolkit


Gast
2004-12-07, 20:32:41
Hallo!
Kann mir einer einen ausführlichen Tutorial geben?Um die SWT API habe ich mich schon gekümmert.Nur weiss ich nicht genau,wie man mit SWT GUIs aufgzieht,habe bisher immer alles mit SWING gemacht.Nun hat man mir erzählt mit SWT sei alles einfacher und vorallem schneller!

Danke

HellHorse
2004-12-07, 22:17:06
Nun hat man mir erzählt mit SWT sei alles einfacher und vorallem schneller!
OMG. SWT war ursprünglich als Gegenbewegung zu Swing gedacht. Mittlerweile ist es ein Swing-Klon. Das sagt wohl genug. Der Umstieg ist erstaunlich einfach.

Die grössten Unterschiede sind:

bei SWT gibst du bei der Erstellung eines Komponenten den Elternkomponenten an anstatt wie in Swing den Kindkomponenten "von Hand" dem Elternkomponenten hinzuzufügen.
bei SWT musst du fast überall einen sytle-int angeben
bei SWT gibt's nur preferredSize (was nichts wirklich einfacher macht)
MVC läuft etwas anders, aber nicht viel
du musst Komponenten, Images, Fonts,.. explizit disposen. Gibt aber Sachen, die dir das abnehmen und Kindkomponenten verwenden automatisch disposed.

Der Rest ist praktisch gleicht, inkl. Layout. SWT hat sogar eine eigene Version von GridBagLayout :ugly: und macht z.T. auch eigene lightweight Komponenten.

SWT hat ein paar Vorteile wie fortgeschrittene Widgets, nicht-rechteckige Fenster, etwas bessere Desktop Integration.
Dafür fehlt etwas vergleichbares wie Java2D und mit JDIC und JDNC kommt man fast gleich weit und es gibt auch fortgeschrittene Swing-Widgets im Netz. PNG-24 wird nicht richtig gehandhabt, es gibt keine LAFs. Borders sind recht mühsam verglichen mit Swing und man auch auch keine Unterklassen von den meisten Komponenten machen (theoretisch), was ähnliches wie die Tutorials von Sun gibt's nicht und die Javadoc Doku ist i.A. schlechter.
Was noch bleibt ist dass SWT OpenSource ist und dadurch problemlos mit GNU CLASSPATH zusammenarbeitet.

SWT-Tutorial:
http://www.gnu.buildtolearn.net/documentation/swt/online/single/index.html
http://www.3plus4software.de/sma/Ein_SWT_Tutorial.html

SWT Component Development Resources
http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-swt-home/dev.html?rev=1.115&content-type=text/html
Code Snippets sind hilfreich

JFace Tutorials:
http://www-106.ibm.com/developerworks/opensource/library/os-ecgui1/
http://www-106.ibm.com/developerworks/opensource/library/os-ecgui2/
http://www-106.ibm.com/developerworks/library/os-ecgui3/
http://www-106.ibm.com/developerworks/library/os-ecjfw/

Online Javadoc:
http://www.jdocs.com/eclipse/3.0/api/

Gast
2004-12-07, 23:00:37
Ja,danke das dürfte erstmal reichne ja.Paar Sachen sind mir auch aufgefallen.Vergleichbarer Container bei SWT ist die Display Klasse und als Instanz übergibt man immer eine Shell-Istanz.Dann geht es so wie man es kennt bei Swing weiter,aus dass man sein parent Fenster angibt.
Dass mit der manuellen GC finde ich nicht so tragisch!Sollte es nicht reichen einfach das Display Objekt dispose() aufzurufen?
Na ja,unser Prof legt auf SWT wert.KA warum.
Der "Hawk"

HellHorse
2004-12-07, 23:18:09
Sollte es nicht reichen einfach das Display Objekt dispose() aufzurufen?

Ja aber, das machst du ja erst, wenn du die Applikation beendest. Wenn du schon früher Widgets, Fonts, Colors, ... nicht mehr brauchst, werden die Ressourcen, die sie belegen erst beim Programmende freigegeben. Vergiss nicht, all das Zeugs ist heayweight. Allerdings kann man sich auch auf den Standpunkt stellen: ich will schliesslich auch was von meinen 512 oder MB RAM haben.

Na ja,unser Prof legt auf SWT wert.KA warum.

Frag ihn einfach mal.

Gast
2004-12-07, 23:38:04
Ja,hast natürlich recht mit dem GC,na ja endlich kann man selber hand legen an der Speicherfreigabe in Java ;-)
Das einzige blöde ist nur die Verbreitung.Wenn ich eine früher was einfaches für einen Kumpel gemacht habe,dann habe ich dass in ein JAR gepackt.Er braucht nur das JRE und fertisch!Und nu.Das klappt natürlich so jetzt mit den Paketen nicht mehr.Habe jetzt zwar bei mir erfolgreich unter eclipse SWT eingerichtet,ist bei mir souzusagen in meiner Laufzeit-Bibliothek dabei,ohne es immer zum Projekt einbinden zu müssen,aber wie sieht es,wenn ich es einen Kumpel zuschicke?Der muss doch DLL für native SWT haben und die Packages!

HellHorse
2004-12-08, 09:54:27
anwendung.jar, swt.jar, swt.dll, und ein batchfile alles in ein zipfile packen und gut ist.

Gast
2004-12-09, 01:24:49
Ok,aber,wie ungefähr muss die bat sein oder was muss drinne stehen?

Der "Hawk"

HellHorse
2004-12-09, 10:05:40
java -cp swt.jar;anwendung.jar -Djava.library.path=swt.dll meinpaket.MeinMain

Gast
2004-12-09, 16:40:48
Achso,ich dachte an was spezielles wegen der Package.
Danke an Hellhorse

Der "Hawk"