SWING oder SWT

Logaff

Bekanntes Mitglied
Hiho,
ich wollte euch Fragen für was man genau SWING und für was man SWT nutzen sollte? Wo liegen die Vorteile, wo die Nachteile? Und was ist verbreiteter?

Ich weiss das ist die Wahl zwischen Pest und Cholera. Und ich weiss das "Kommt drauf an" die Lösung auf semptliche Fragen in der Informatik ist.

mfg,
Andreas
 

Marco13

Top Contributor
Eine konkrete Antwort werde ich mal nicht geben, die wäre zu biased :) Ich kann nur sagen, dass sowas wie Eclipse RCP und GEF eben auf SWT aufsetzen, und man Swing da nur mit einigen Workarounds reinbekommt. Aber ... abgesehen davon... eine indirekte Antwort auf deine Frage:

Falls jemand irgendeinen Grund nennen kann, in einem nicht-RCP-Programm SWT statt Swing zu verwenden, würde ich den auch gerne mal hören :D
 
B

Beni

Gast
SWT kann ganz hübsch aussehen, auch in einer nicht-RPC Anwendung? Aber andererseit ist Swing ziemlich einfach, robust, und es gibt unzählige Tutorials...
 
T

Tomate_Salat

Gast
Ich hab schon SWT außerhalb eines eclipse-RCPs verwendet (würde ich aber mitlerweile nicht mehr tun. Als RCP ists angenehmer) und ich hab mal "Spaßeshalber" ein RCP in eclipse mit Swing aufgebaut. Geht auch. Nur muss man eben bei einiges selber implementieren, dass bei SWT einfach laufen würde.

Ich bin so assozial und werfe mal JavaFX 2.0 ein. Das hat auch einige netten Features :D.

@TO: Wenn du beides (SWT|Swing) kannst/kennst/lernen musst, dann schau dir doch an, was dir das eclipse RCP bietet. Brauchst du davon etwas, was z.B. Swing nicht bietet/bieten kann --> SWT/JFace. Ansonsten einfach das nehmen, mit dem du lieber arbeitest.
 

Bernd Hohmann

Top Contributor
Aber andererseit ist Swing ziemlich einfach, robust, und es gibt unzählige Tutorials...

Ist ja schon seit 1997 auf dem Markt (da hab ich mit Swing angefangen, Java 1.1.5 unter OS/2) und hat eine Ewigkeit gebraucht, bis die Runtime hinreichend viele Shortcuts für Swing intern eingebaut bekommen hat.

Hatte jetzt gut 6 Jahre GUI Abstinenz in Java und musste mich wieder einarbeiten.

"Einfach" ist Swing solange wie man nix ungewöhnliches möchte (zb. den Kram ordentlich unter Unix aussehen zu lassen), robust ist es auf jeden Fall weil man sich gewisse Tücken der jeweiligen Plattformen erspart und die Garbage Collection alles unter Kontrolle hat.

Trotzdem bin ich jetzt nach reiflicher Überlegung nach SWT umgestiegen weil der Plattformspezifische L&F die Klientel (aka Schlipsträger) besser anspricht. Natürlich kann man Swing da verbiegen bis zum geht nicht mehr, aber SWT entspricht meinem Bedürfnis "Einsteigen und Motor anlassen" besser als Swing.

Bernd

PS: Die Aussage "es gibt unzählige Tutorials" lasse ich nur ungern für die Qualität einer Programmiersprache gelten.

Zwar korreliert die Anzahl der Fragen zu einer Programmiersprache mit dem Verbreitungsgrad, aber mit zunehmenden "Alter" einer Sprache auch mit den Problemen die man mit der Sprache bzw. Runtime hat.

zB. gibt es recht wenige Tutorials und Foren für Powerbasic etc. obwohl die Compiler sehr verbreitet sind - die Sprache und die Libs können wenig, daher sind sie auch sehr schmerzfrei anzuwenden und machen keinen Ärger.
 
T

Tomate_Salat

Gast
rotzdem bin ich jetzt nach reiflicher Überlegung nach SWT umgestiegen weil der Plattformspezifische L&F die Klientel (aka Schlipsträger) besser anspricht.

[japi]UIManager#getSystemLookAndFeelClassName()[/japi] und imho weniger Grund als das mit den "tutorials" ;-). Aber es gibt denke ich für beides genug im Netz zu finden.
 
G

Gast2

Gast
Ich würde SWT nie ohne JFace benutzen. Ich würde sogar soweit gehen, dass JFace SWT erst benutzbar macht und das Viewer Konzept sehr mächtig ist.
Ansonsten hat SWT/JFace ein paar nettere widgets und ein super databinding, dass dir Swing nicht bieten kann, dafür musst beim Bauen einer plain SWT/JFace immer auf dein OS achten.
Gibt für beides Vor-und Nachteile je nachdem was du erreichen willst.

Aber wenn du eh SWT/JFace benutzen willst dann nehm einen Eclipse RCP nimmt dir viel arbeit ab und e4 lässt sich auch ein "bischen" stylen und hat nette Feature wie DI ;).

Ansonsten lohnt sich bestimmt auch ein Blick auf JavaFX würde ich wohl jetzt eher nehmen als Swing...
Gibt auch ein e4 fork wo du JavaFX und RCP zusammen verwenden kannst.
Kai's Blog JavaFX 2.0, Swing & SWT Renderers for the Eclipse 4.x Application Platform

wie Eclipse RCP und GEF eben auf SWT aufsetzen, und man Swing da nur mit einigen Workarounds reinbekommt.

Echt gibt es sowas für Swing? Also in die Richtung GEF,GMF, Graphiti? Hab ich noch nirgends gesehen, dass Swing sowas bietet.

Also persönlich würde ich für eine Desktop Anwendung immer einen Eclipse RCP, schon allein weil das Ökosystem riesig ist, in Erwägung ziehen mit SWT/JFace oder eben JavaFX, aber heuzutage noch auf Swing zu setzen sehe ich (subjektiv) keinen Vorteil.
 
Zuletzt bearbeitet von einem Moderator:

Bernd Hohmann

Top Contributor
Aber wenn du eh SWT/JFace benutzen willst dann nehm einen Eclipse RCP nimmt dir viel arbeit ab und e4 lässt sich auch ein "bischen" stylen und hat nette Feature wie DI ;).

Ansonsten lohnt sich bestimmt auch ein Blick auf JavaFX würde ich wohl jetzt eher nehmen als Swing...
Gibt auch ein e4 fork wo du JavaFX und RCP zusammen verwenden kannst.
Kai's Blog JavaFX 2.0, Swing & SWT Renderers for the Eclipse 4.x Application Platform

Da komme ich schon wieder ins Grübeln. Was wird davon in 5 Jahren noch eine stabile Codebasis liefern?

Mein ältestes Projekt (nicht Java) hat eine Codebasis (nicht von mir) von 1988, ist damit 24 Jahre alt und verdient immer noch gutes Geld.

Bernd
 

Marco13

Top Contributor
Also persönlich würde ich für eine Desktop Anwendung immer einen Eclipse RCP, schon allein weil das Ökosystem riesig ist, in Erwägung ziehen mit SWT/JFace oder eben JavaFX, aber heuzutage noch auf Swing zu setzen sehe ich (subjektiv) keinen Vorteil.

Kommt drauf an ( :D) Für viele Dinge, die mit Zeichnen zu tun haben, ist Swing IMHO um Größenordnungen besser geeignet als SWT. Sowas wie ein BufferedImage, wo man sich mal schnell ein Graphics abholen und mit einem RadialGradientPaint einen Farbverlauf mit Alpha-Kanal reinmalen kann sucht man bei SWT vergebens (und der Krampf, dass man alles mögliche immer "disposen" muss ist ja quasi Anti-Java :autsch: ). Gute High-Level GUI-Components von JTable über JColorChooser bis JInternalFrame und die Möglichkeit dem ganzen mit ein paar Zeilen ein nettes Nimbus-L&F (oder für die Bänker: Das Windows-L&F ;)) zu verpassen sprechen auch für sich. Aber ich hatte ja auch schon gesagt, dass es sicher Bereiche gibt, wo SWT angebracht ist.

JavaFX hat aber vermutlich das Potential, Swing in vielen Bereichen abzulösen. Ich war richtig begeistert von einigen Punkten (auch wenn ich bisher noch nicht wirklich was damit gemacht habe :oops: ). Das einzige, was mir daran noch etwas ... unzugänglich erscheint, ist das CSS-Skinning, aber da soll es auch Hilfen dafür geben...
 
G

Gast2

Gast
Kommt drauf an ( :D) Für viele Dinge, die mit Zeichnen zu tun haben, ist Swing IMHO um Größenordnungen besser geeignet als SWT. Sowas wie ein BufferedImage, wo man sich mal schnell ein Graphics abholen und mit einem RadialGradientPaint einen Farbverlauf mit Alpha-Kanal reinmalen kann sucht man bei SWT vergebens (und der Krampf, dass man alles mögliche immer "disposen" muss ist ja quasi Anti-Java :autsch: ). Gute High-Level GUI-Components von JTable über JColorChooser bis JInternalFrame und die Möglichkeit dem ganzen mit ein paar Zeilen ein nettes Nimbus-L&F (oder für die Bänker: Das Windows-L&F ;)) zu verpassen sprechen auch für sich. Aber ich hatte ja auch schon gesagt, dass es sicher Bereiche gibt, wo SWT angebracht ist.

JTable eine gute GUI Componente zu nennen ist ja wohl quark, aber gut bist halt ein Swinger ;)... Das Viewer Konzept von JFace ist viel viel angenehmer.

Aber ich merke dass du nicht weiß was GEF,GMF und co ist und auch die Mächtigkeit nicht kennst, sonst würdest du das nicht mit dem Swing Zeichnen vergleichen. Solange Swing kein Framework dafür bietet kannst du die Standard Funktionalität damit kaum vergleichen. Schon allein das ganze Drag and Drop Zeug, Palette usw. usw.

und der Krampf, dass man alles mögliche immer "disposen" muss ist ja quasi Anti-Java
Swing hat genauso seine Macken. Du kannst auf GUI Kompoenten im falschen Thread zugreifen das ist genauso ein Krampf usw.
 

Marco13

Top Contributor
Ja, zugegeben (und wie auch schon angedeutet), ich bin mit SWT nicht sooo vertraut, dewegen kann ich das kaum objektiv beurteilen (aber ich behaupte mal, dass das allgemein schwierig ist). Beide haben vor- und Nachteile (und btw: Die JTable ist mit Abstand die komplexeste JComponent, und ... zugegeben, wenn's drum geht einen JButton in eine JTable zu kriegen (oder alles andere, was mit "Editoren" zu tun hat) kann es hakelig werden, aber ... ich kann mir kaum vorstellen, dass das mit SWT sooo viel einfacher ist...)
 
T

Tomate_Salat

Gast
Doch afair sind Tables in SWT einfacher/angenehmer/intuitiver. Hab schon lange nix mehr damit gemacht, aber das war glaube ich mal der Grund, warum ich mir SWT angeschaut hatte.
 
G

Gast2

Gast
Ja, zugegeben (und wie auch schon angedeutet), ich bin mit SWT nicht sooo vertraut, dewegen kann ich das kaum objektiv beurteilen (aber ich behaupte mal, dass das allgemein schwierig ist). Beide haben vor- und Nachteile (und btw: Die JTable ist mit Abstand die komplexeste JComponent, und ... zugegeben, wenn's drum geht einen JButton in eine JTable zu kriegen (oder alles andere, was mit "Editoren" zu tun hat) kann es hakelig werden, aber ... ich kann mir kaum vorstellen, dass das mit SWT sooo viel einfacher ist...)

Mal so allgemein wir sollten festlegen, dass wenn wir von SWT reden auch JFace mit einbeziehen?
Weil wie gesagt ohne JFace hat SWT keine Vorteile ;). Das Viewer Konzept von JFace macht SWT erst einsetzbar.

Ja einfach Tabellen und Trees sind mit SWT/JFace auch mit Editoren "leichter", außer man will checkboxen in einer Zelle haben. Aber du darfst nie außer acht lassen, dass du eben dann bei Tabellen/Trees usw. schon Databinding dabei hast, was du bei Swing immer selber machen musst.

Beide Toolkits haben seine Kanten und Macken und ich bin gespannt was JavaFX bietet.
SWT/JFace hat eben den Vorteil von dem Eclipse RCP, das dann schon viel in der UI mitliefert.
Und Frameworks wie GEF,GMF, Graphiti gibt's soviel ich weiß in Swing eben nicht und das selber zu machen (und auch so gut) sind bestimmt viele Mannmonate arbeit.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Swing GUI - Komponenten platzieren AWT, Swing, JavaFX & SWT 4
XWing Jave swing overly benutzten. AWT, Swing, JavaFX & SWT 3
J Anzeige ID und Markierung für Knoten in Eclipse & Swing AWT, Swing, JavaFX & SWT 4
Juelin javax.swing in javafx AWT, Swing, JavaFX & SWT 1
A Eclipse 2023 und Swing AWT, Swing, JavaFX & SWT 4
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
H Swing Componente zur Läufzeit ändern AWT, Swing, JavaFX & SWT 3
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
ExceptionOfExpectation Anpassung von JKomponentengrößen (Swing) AWT, Swing, JavaFX & SWT 3
thor_norsk AWT SWING Aufgabe AWT, Swing, JavaFX & SWT 7
U Zwei Fragen zu eienr Swing Aufgabe AWT, Swing, JavaFX & SWT 2
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
H Simple Animation mit Swing AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Einfachste Möglichkeit zum Abspielen eines Videos in Swing AWT, Swing, JavaFX & SWT 4
A Swing ProgressBar über 2 parallel laufende Threads AWT, Swing, JavaFX & SWT 2
M Swing GridLayout AWT, Swing, JavaFX & SWT 2
O return-Statement mit Swing AWT, Swing, JavaFX & SWT 6
O Ein Java-Programm mit Swing steuern AWT, Swing, JavaFX & SWT 1
Monokuma Swing zu JavaFX AWT, Swing, JavaFX & SWT 5
J Swing Slider AWT, Swing, JavaFX & SWT 11
G Thread starten Swing AWT, Swing, JavaFX & SWT 5
G Swing JPasswordField AWT, Swing, JavaFX & SWT 12
L Swing Button Farbe ändern/wechseln AWT, Swing, JavaFX & SWT 2
C Swing AWT GUI Anfänger Aufgabe AWT, Swing, JavaFX & SWT 7
W Inject bei einem Swing Frontend AWT, Swing, JavaFX & SWT 8
L Kommunikation zwischen Klassen / Konstruktoren bei Swing AWT, Swing, JavaFX & SWT 9
M Feldvalidierung swing AWT, Swing, JavaFX & SWT 4
E Swing Componenten werden nach Änderung des display modes verzerrt dargestellt AWT, Swing, JavaFX & SWT 8
D [Swing] Anordnung von Komponenten mit GridLayout Manager AWT, Swing, JavaFX & SWT 13
O Zukunft von Swing und JavaFX ? AWT, Swing, JavaFX & SWT 3
S Swing Fenster State Machine AWT, Swing, JavaFX & SWT 1
T Swing Swing an Bildschirm anpassen AWT, Swing, JavaFX & SWT 3
S Swing Panel wird nicht neu gezeichnet AWT, Swing, JavaFX & SWT 3
M Swing Java Swing/AWT Combobox Bug AWT, Swing, JavaFX & SWT 3
M Swing GUI mittels erben sowie variabler Dateninhalt AWT, Swing, JavaFX & SWT 1
W Swing Multitouch mit Swing AWT, Swing, JavaFX & SWT 6
S Swing-Applikation die ein Numpad nachbildet samt Keybindings..? AWT, Swing, JavaFX & SWT 5
S Swing Java Swing AWT, Swing, JavaFX & SWT 6
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
J Swing oder JavaFX AWT, Swing, JavaFX & SWT 21
D Swing Anwendung ohne JPanel erstellen AWT, Swing, JavaFX & SWT 1
D SQL Statements mit Java Swing benutzen AWT, Swing, JavaFX & SWT 4
Damtonix BufferStrategy flackert (Swing) AWT, Swing, JavaFX & SWT 9
D DatePicker für Java Swing AWT, Swing, JavaFX & SWT 2
B JavaFX oder swing AWT, Swing, JavaFX & SWT 3
T Java Swing - kleines Rechteck unter dem cursor AWT, Swing, JavaFX & SWT 5
L 2D-Grafik Swing paint|paintComponent AWT, Swing, JavaFX & SWT 2
L Swing Größe automatisch anpassen AWT, Swing, JavaFX & SWT 14
G Swing Swing Binding JList funktioniert nicht AWT, Swing, JavaFX & SWT 5
Blender3D Meine Swing Anwendung läuft unter Windows 10 und Ubuntu aber nicht auf Windows 7 AWT, Swing, JavaFX & SWT 16
B Bar Plot in Swing JPanel AWT, Swing, JavaFX & SWT 0
D Swing in Kombination mit JGraphX und JGraphT AWT, Swing, JavaFX & SWT 0
F main-Funktion bei Swing AWT, Swing, JavaFX & SWT 4
S Java Swing Print() method AWT, Swing, JavaFX & SWT 4
S Java Swing auf Windows Phone AWT, Swing, JavaFX & SWT 6
I JAVAFX - Übergabe der Inhalte an eine Scene - Wo ist der Vorteil gegenüber Swing? AWT, Swing, JavaFX & SWT 2
S Manuelles Menu in Swing AWT, Swing, JavaFX & SWT 3
T Custom Window ohne Swing / AWT / FX..?! AWT, Swing, JavaFX & SWT 1
MaxG. Swing Swing Komponenten zur Laufzeit hinzufügen AWT, Swing, JavaFX & SWT 2
Java_RY Bin Ratlos bzgl Malen in Swing AWT, Swing, JavaFX & SWT 5
offi Swing Shuttle List AWT, Swing, JavaFX & SWT 9
I Graph mit Swing zeichnen AWT, Swing, JavaFX & SWT 8
D Swing Swing Objekte sehen im Entwurf anders aus als beim Ausführen AWT, Swing, JavaFX & SWT 3
S Swing & Clean und build Problem AWT, Swing, JavaFX & SWT 12
javampir Swing repaint in JavaFX Anwendung AWT, Swing, JavaFX & SWT 3
K Mit JavaFX angefangen. Lohnt sich Swing? AWT, Swing, JavaFX & SWT 28
B Swing Update Swing Komponente bevor Methode startet. AWT, Swing, JavaFX & SWT 4
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
M Swing Swing-Widgets und paintComponent() AWT, Swing, JavaFX & SWT 2
B Swing WindowBuilde: Menu -> anderes Panel wechseln AWT, Swing, JavaFX & SWT 1
K eigener button in swing AWT, Swing, JavaFX & SWT 3
A JavaFX DatePicker in Swing beim Start nicht sichtbar AWT, Swing, JavaFX & SWT 2
windl Bufferstrategy in Swing nachstellen AWT, Swing, JavaFX & SWT 0
M Kamera in Java Swing einbinden AWT, Swing, JavaFX & SWT 4
Z Swing Swing und die Progressbar AWT, Swing, JavaFX & SWT 1
J Frage zur objektorentierten Swing Programmierung AWT, Swing, JavaFX & SWT 10
Xanny 2D-Grafik Beginner! Probleme mit Swing, Gprahics class und paint AWT, Swing, JavaFX & SWT 13
F Java Swing Rechteck in JPanel zeichnen AWT, Swing, JavaFX & SWT 7
N Swing Benötige Hilfe um ein Swing Canvas zu speichern AWT, Swing, JavaFX & SWT 4
stylegangsta JButton Fehelr javax.swing.ImageIcon.<init>(Unknown Source) AWT, Swing, JavaFX & SWT 24
RalleYTN Swing JavaFX VideoPlayer in Swing einbetten. Ich komm nicht an die Dimension des Videos! AWT, Swing, JavaFX & SWT 0
T swing läuft nur beding flüssig AWT, Swing, JavaFX & SWT 1
A Sonderzeichen bei Swing AWT, Swing, JavaFX & SWT 3
L DoubleBuffering unter Swing AWT, Swing, JavaFX & SWT 0
N Programm mit Swing und Thread, Figur bewegen sich nicht AWT, Swing, JavaFX & SWT 6
D Java Swing, Label lässt sich nicht mit Checkboxen/Knopf verändern AWT, Swing, JavaFX & SWT 2
J Swing Basics - JButton funktioniert nicht. AWT, Swing, JavaFX & SWT 1
J Swing/AWT | Dynamisch erzeugte Objekte ansprechen AWT, Swing, JavaFX & SWT 1
N JavaFX Umstieg von Swing auf Java FX AWT, Swing, JavaFX & SWT 6
J GUI Anfänger einfaches Program AWT, Swing, JavaFX & SWT AWT, Swing, JavaFX & SWT 3
M Swing Grundlegende Frage zu SWING mit WindowBuilder AWT, Swing, JavaFX & SWT 11
M Plugin oder eigenes Tool mit zB SWING AWT, Swing, JavaFX & SWT 2
Z Java-Swing : JComponent AWT, Swing, JavaFX & SWT 2
Z Swing Swing: Elemente werden doppel/verschoben gezeichnet, sind teils unsichtbar etc... AWT, Swing, JavaFX & SWT 10
S JComboBox aus anderer Klasse füllen (Java-Swing) AWT, Swing, JavaFX & SWT 0
N JComboBox in JTable [Swing] -> totaler UI-Einsteiger AWT, Swing, JavaFX & SWT 3
T Swing Kompatibilitätsproblem zwischen Swing und JavaFX AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben