# swt oder awt?



## Confused_Guest (10. Jun 2011)

Hallo,

ich habe jetzt mit swt ( und rcp) sowie mit  awt bzw. Swing ein paar Erfahrungen gemacht, trotzdem weiß ich nicht so genau womit ich entwickeln soll.

Was mich an swt bzw. rcp sehr reizt, ist das flexible UI durch verschieben / vergrößern usw. der Viewparts...
diese Funktion fehlt mir gänzlich bei awt / swing.

Was mir aber aufgefallen ist: Das GUI Design selbst und auch das Eventhandling schien mir bei Swing alles etwas... "einfacher".
Auch die Arbeit mit Tabellen fand ich bei Swing um einiges angenehmer.

Jetzt stellt sich für mich die Frage: Womit bau ich ein zukunftsfähiges UI ? awt oder swt?

Kann ich die RCP Viewparts nutzen und darin sinnvoll swing-frames integrieren?

Wird Swing noch weiter entwickelt? Das neuste was ich dazu gefunden habe war aus dem Jahr 2009...

Womit bin ich auf dauer flexibler?


----------



## Asgar13 (10. Jun 2011)

Nach meinen Wissens, wir AWT nicht mehr weiter entwickelt, dafür aber SWT und Swing.

Swing entstand aus AWT.
Und SWT entstand aus Swing.

Je nachdem wie das UI aussehen soll, würde ich zwischen SWT und Swing wählen.

Wenn du eine UI nach "Windows-standard" entwickeln willst, dann kannst du SWT nehmen, willst du aber ein UI mit z.B. Einstellbarer Scrollbalkenfarbe, würde ich dir ehr Swing ans Herz legen.

Hier ist eine ganze Liste, was du in Swing ändern kannst.
http://www.rgagnon.com/javadetails/JavaUIDefaults.txt



> Kann ich die RCP Viewparts nutzen und darin sinnvoll swing-frames integrieren?



Ja

JUG Saxony ? Eclipse RCP/Swing AF/NetBeans RCP » Swing, Frameworks, EclipseRCP, Saxony, Projekte, Application, Dresden, Thema » Communardo Techblog


----------



## Gast2 (10. Jun 2011)

Asgar13 hat gesagt.:


> Und SWT entstand aus Swing.



Was????:L



Confused_Guest hat gesagt.:


> Was mich an swt bzw. rcp sehr reizt, ist das flexible UI durch verschieben / vergrößern usw. der Viewparts...
> diese Funktion fehlt mir gänzlich bei awt / swing.



Grundsätzlich muss man bei Swing viel mehr externe libs einbinden als beim einem großen Framework wie RCP...
Bei Swing benötigst du ein DockingFramework(gibt es), ein Databinding (JGoodies) usw.
Das alles ist beim RCP dabei bei Swing musst du eine externe lib einbinden oder selber machen.



Confused_Guest hat gesagt.:


> Was mir aber aufgefallen ist: Das GUI Design selbst und auch das Eventhandling schien mir bei Swing alles etwas... "einfacher".
> Auch die Arbeit mit Tabellen fand ich bei Swing um einiges angenehmer.


Dann hast du damit nicht richtig gearbeitet schon, die JFace Viewer angeschaut? Damit ist es doch echt total easy zu arbeiten und viel dynmaischer als mit Swing.
Eclipse RCP
Kapitel 9/10



Confused_Guest hat gesagt.:


> Kann ich die RCP Viewparts nutzen und darin sinnvoll swing-frames integrieren?
> 
> Wird Swing noch weiter entwickelt? Das neuste was ich dazu gefunden habe war aus dem Jahr 2009...



Du kannst den Eclipse RCP mit View Swing nehmen würde ich aber nicht machen. Total unnötig!!!

Außerdem bietet SWT/JFace imho die mächtigeren widgets.


----------



## Confused_Guest (10. Jun 2011)

Es gibt also keinen wirklichen Grund >gegen< Swing?

Databinding scheint ja auch zu gehen.


----------



## Gast2 (10. Jun 2011)

Confused_Guest hat gesagt.:


> Es gibt also keinen wirklichen Grund >gegen< Swing?
> 
> Databinding scheint ja auch zu gehen.



Du kannst Swing nicht mit einem Eclipse RCP vergleichen. Ein Eclipse RCP ist viel viel mächtiger und ein größeres Framework als Swing.


----------



## Confused_Guest (10. Jun 2011)

wie schaut es mit netbeans rcp vs. eclipse rcp aus?
also was mächtigkeit angeht... ?


----------



## Gast2 (10. Jun 2011)

Confused_Guest hat gesagt.:


> wie schaut es mit netbeans rcp vs. eclipse rcp aus?
> also was mächtigkeit angeht... ?



ich kenne netbeans rcp nicht. aber eclipse rcp hat die nase bei rich client anwendungen. außerdem basier eclipse rcp auf osgi


----------



## TheDarkRose (10. Jun 2011)

Eclipse RCP basiert auf SWT. Dort kannst du weiterhin (soweit ich weiß) auch das komplette Pluginsystem nutzen, bzw. deine eigene Anwendung auch als Plugin in ein anderes Eclipse Paket einbinden.
Netbeans RCP arbeitet nur mit Swing, weiß aber nicht ob das mit den Pluginverhalten wie in Eclipse RCP auch so funktioniert.


----------



## Gast2 (10. Jun 2011)

TheDarkRose hat gesagt.:


> Netbeans RCP arbeitet nur mit Swing, weiß aber nicht ob das mit den Pluginverhalten wie in Eclipse RCP auch so funktioniert.



Wie gesagt Eclipse RCP basiert auf osgi, Netbeans RCP eben nicht.

Eclipse RCP benutzt als GUI SWT/Face kein reines SWT und man kann wie gesagt auch Swing benutzen(noch nie getestet). Darum basiert Eclipse RCP nicht auf SWT. In Eclipse e4 kannst glaub sogar QT nehmen.


----------



## Asgar13 (10. Jun 2011)

Hast recht, SWT wurde erschaffen um gegen Swing anzustinken :lol:
Bloß woraus?

Introduction to SWT

The Standard Widget Toolkit (SWT) is a graphical widget toolkit for the Java programming language. It was originally developed by IBM. It is an alternative to the Java Swing GUI toolkit provided by Sun Microsystems, which is a part of the Java Platform, Standard Edition. SWT is written in Java. It uses the native GUI APIs like Winapi, GTK+ to create its widgets via the JNI. 

Swing <-> SWT


Hier noch etwas zum Thema zu lesen:

Swing and SWT: A Tale of Two Java GUI Libraries - Developer.com


----------



## Gast2 (10. Jun 2011)

Asgar13 hat gesagt.:


> Hast recht, SWT wurde erschaffen um gegen Swing anzustinken :lol:



Auch das ist falsch


----------



## Asgar13 (10. Jun 2011)

Wieso sollte dann IBM, SWT entwickelt haben? ???:L


----------



## Gast2 (10. Jun 2011)

Asgar13 hat gesagt.:


> Wieso sollte dann IBM, SWT entwickelt haben? ???:L



Bestimmt nicht um Swing anzustinken so ein Unternehmen hat wichtigere Gründe als Swing eins auszuwischen.

Ach ja noch ganz nett 
http://www.java-forum.org/awt-swing-swt/65614-firmenpolitik-swt.html


----------



## maki (10. Jun 2011)

SirWayne hat gesagt.:


> Bestimmt nicht um Swing anzustinken so ein Unternehmen hat wichtigere Gründe als Swing eins auszuwischen.


Ja, sie wollten nämlich _Sun_ eins auszuwischen 

Eclipse = Sonnenfisternis und so...

Databinding gibt es übrigens auch in SWT/JFace, imho sogar besseres (inkl. Context) als in Swing.


----------



## Gast2 (10. Jun 2011)

maki hat gesagt.:


> Ja, sie wollten nämlich _Sun_ eins auszuwischen
> 
> Eclipse = Sonnenfisternis und so...



ja so gesehen ... aber ich denke eher dass sie mit Swing unzufrieden waren und es einfach schlecht fanden ...



maki hat gesagt.:


> Databinding gibt es übrigens auch in SWT/JFace, imho sogar besseres (inkl. Context) als in Swing.



Hab nix anderes behauptet . Mit EMF gibt es sogar gleich undo/redo umsonst dazu.


----------



## maki (10. Jun 2011)

SirWayne hat gesagt.:


> ja so gesehen ... aber ich denke eher dass sie mit Swing unzufrieden waren und es einfach schlecht fanden ...


"Die großen 3" (IBM, Sun, Oracle) bekämpfen sich schon seit Jahrzehnten, nicht umsonst war in Abschiedsbrief vom ehem. Sun Chef die Mitteilung "Beat IBM" versteckt: Sun CEO's internal memo: Beat IBM | Business Tech - CNET News

Abgehesen davon hatte Swing damals wirklich Probleme, angfangen beid er Performace bis hin zum Design. Mitterweile ist Swing wieder schneller als SWT...



SirWayne hat gesagt.:


> Hab nix anderes behauptet . Mit EMF gibt es sogar gleich undo/redo umsonst dazu.


Confused_Guest hatte Databinding als Vorteil für Swing genannt.


----------



## Gast2 (10. Jun 2011)

maki hat gesagt.:


> "Die großen 3" (IBM, Sun, Oracle) bekämpfen sich schon seit Jahrzehnten, nicht umsonst war in Abschiedsbrief vom ehem. Sun Chef die Mitteilung "Beat IBM" versteckt: Sun CEO's internal memo: Beat IBM | Business Tech - CNET News
> 
> Abgehesen davon hatte Swing damals wirklich Probleme, angfangen beid er Performace bis hin zum Design. Mitterweile ist Swing wieder schneller als SWT...
> .



Ja schon klar dass sie sich bekämpfen, aber ich denke es hatte schon mehr Gründe SWT zu entwicklen und ich finde persönlich SWT/JFace angenehmer zu entwicklen.



maki hat gesagt.:


> Confused_Guest hatte Databinding als Vorteil für Swing genannt.



Aso ok ^^


----------



## Wildcard (11. Jun 2011)

Ein paar Punkte (persönliche Meinung):
Swing
 -besser Skinnable
 -flexiblere Widgets
 -selbst Zeichnen ist einfacher

SWT/JFace
 -sieht besser aus
 -mehr widgets
 -bessere Widgets
 -JFace Tree- und TableViewer sind deutlich besser als JTree und JTable
 -besseres Databinding
 -besseres Threading Modell

Ich würde mittlerweile fast jede Art von Desktop Applikation als Eclipse RCP umsetzen weil es unglaublich viel bietet und es die modulare Architektur einfach macht die Anwendung flexibel und erweiterbar zu halten, aber Geschmäcker sind verschieden.


----------



## Pantoi (15. Jun 2011)

Fazit also: Swing flexibler, RCP schöner schneller neuer?

Ich habe ja auch versucht mich in Eclipse RCP zurechtzufinden und bin auf den Schluss gekommen, das alles toll ist, solange man nicht zeichnen will. Und wenn man dann draw2d zeichnen lässt, ist Drag and Drop mit den draw2d Komponenten (Figuren) sehr ruckelnd. So am Rande: Hat zu letzterem jmd ne Idee ?


----------



## Gast2 (15. Jun 2011)

Pantoi hat gesagt.:


> Fazit also: Swing flexibler, RCP schöner schneller neuer?



RCP ist ein ganzes Framework mit einer modularen Architektur das bietet dir viel mehr als Swing.
Du kannst RCP auch mit Swing verwenden!!! 



Pantoi hat gesagt.:


> Ich habe ja auch versucht mich in Eclipse RCP zurechtzufinden und bin auf den Schluss gekommen, das alles toll ist, solange man nicht zeichnen will. Und wenn man dann draw2d zeichnen lässt, ist Drag and Drop mit den draw2d Komponenten (Figuren) sehr ruckelnd. So am Rande: Hat zu letzterem jmd ne Idee ?



Fr das zeichnen gibts es schon einige mehr Plugins. Und so ganze ohne Code oder Beispiel kann keiner erraten warum es bei dir ruckelt.


----------



## Pantoi (15. Jun 2011)

> Fr das zeichnen gibts es schon einige mehr Plugins.


Welche z.b.?



> Und so ganze ohne Code oder Beispiel kann keiner erraten warum es bei dir ruckelt.


Schon klar, hätte ja sein können, dass es da einen allseits bekannten Trick gibt  Ich mach dazu mal nen neuen Thread auf.


----------



## Gast2 (15. Jun 2011)

Pantoi hat gesagt.:


> Welche z.b.?



Je nach Anforderung
GEF ,
Zest


----------



## Sonecc (15. Jun 2011)

Zur Entstehung und Geschichte von swt: Siehe hier


----------

