Unterschied JavaFX und Swing bzw. AWT?

2 Antworten

Graphische Benutzeroberflächen zu programmieren war immer schon schwierig.

Aus eben diesem Grund hat sich die älteste Java-Lösung dafür (= AWT) nicht lange gehalten. Sie wurde ersetzt durch Swing, welches - weil es eben auch nicht so ganz ideal war - das SWT als Konkurrenten bekam (beide von IBM ins Leben gerufen).

So richtig zufrieden aber war man auch damit nicht, und deswegen hat man - im Rahmen der Fortentwicklung von Java - eine grundlegend neue Lösung angestrebt, die auf deutlich höherer Abstraktionshöhe angesiedelt ist (und daher ein gutes Stück leichter zu gebrauchen): JavaFX = derzeitiges Standard-Framework für GUI-Programmierung in Java.

Viele Programmierer aber empfinden selbst JavaFX immer noch als zu kompliziert. So richtig froh wird man auch damit scheinbar nicht.

grtgrt  22.02.2018, 11:45

Wer große Anwendungen in Java schreiben möchte, hat es i.A. nicht leicht, schnell zu sehen, welches der vielen verfügbaren GUI Frameworks für sein Projekt denn wohl das günstigste sein könnte. Ihm mag es dann helfen, zu erfahren, wie sich Vaadin mit bis zu 8 anderen GUI Frameworks vergleicht. Über Spring MVC — das in 2012 (mit 30%) vorwiegend genutzte GUI Framework — sagt jene Seite (bzw. der Report, den man sich von dort runterladen kann) aber leider gar nichts. 

Der Trend geht eindeutig dahin, GUIs nur noch in HTML5 + CSS + JavaScript zu implementieren. 

2
grtgrt  22.02.2018, 12:09
@grtgrt

Wie ich eben sehe, vergleicht dieser Report jetzt nur noch Vaadin mit Angular - einem reinen JavaScript Framework (schade).

0
thatpoppy  22.02.2018, 16:31
@grtgrt

"Der Trend geht eindeutig dahin, GUIs nur noch in HTML5 + CSS + JavaScript zu implementieren"

Genau so sieht es aus. Fürs GUI programming setzt man auf moderne ReactJS oder VueJS styled components, die in eine MVC Architektur eingebaut werden. Damit lassen sich skalierbare und sauber implementierte GUIs erstellen. Was viele einfach nicht verstehen, ist, dass sich das Trio HTML, CSS, JS als GUI Technologie, nicht nur fürs Web, durchgesetzt hat und JavaFX etc als obsolete gilt.

Ich muss zwar auch einige legacy Apps, mit einer ähnlichen Technologie wie JavaFX pflegen, sehe aber diesen Aufwand als "falsch" und als verloren Zeit an.

1

Wieso schaust du nicht auf Wikipedia, in der Oracle-Dokumentation oder auf anderen Seiten, die du via Google zu diesem Thema findest (es gibt so einige Seiten, die sich nur mit dieser Frage beschäftigen)?

Hier sind ebenso mehrere GUI-Toolkits aufgelistet und kurz beschrieben:

https://stackoverflow.com/questions/7358775/java-gui-frameworks-what-to-choose-swing-swt-awt-swingx-jgoodies-javafx

TeeTier  22.02.2018, 22:45

Oops ... hab mich verklickt und deiner Antwort einen Pfeil nach unten verpasst ... das war nicht meine Absicht! Ich hoffe, der "Danke" Button gleicht das halbwegs aus. Sorry! :)

0