# Einsatzgebiete von JavaFX



## OnDemand (28. Okt 2014)

Hallo zusammen,

ich google mich schon dumm und dämlich. Verstehe nicht was genau ist Java FX?

Ist das GUI, ist das für Server gedacht oder wofür wird es eingesetzt? Habe schon den SceneBuilder ausprobiert, damit werden ja scheinbar GUI zusammen gestellt. Kann man das auch für Webapplikationen nutzen oder ist JavaFX für Desktopmaschinen, Smartphones gedacht?


----------



## nvidia (28. Okt 2014)

Steht doch auf der Oracle-Seite [1]:

"JavaFX is a set of graphics and media packages that enables developers to design, create, test, debug, and deploy rich client applications that operate consistently across diverse platforms."

[1]http://docs.oracle.com/javase/8/javafx/get-started-tutorial/jfx-overview.htm#BABHCIBA


----------



## Joose (28. Okt 2014)

JavaFX ist ein weiteres UI Framework neben AWT und Swing.


----------



## OnDemand (28. Okt 2014)

Hmm danke, aber wie läuft das dann auf Servern auch in tomcat etc oder clientseitig in nem Applet? Muss mich da nochmal rein lesen, weiß absolut nix damit anzufangne


----------



## AppOcean Team (28. Okt 2014)

javaFX apps können auf 4 arten an clients verteilt werden:
- als standalone programme (jar dateien, wie normales java programm aufzurufen mit "java -jar"
- als applet (direkt im browser clientseitig ausgeführt)
- als "web start application": der browser ruft eine .jnlp datei auf und startet dann java, welches die app dateien herunterlädt und dann lokal auf dem computer ausführt
- als "self-packaged application": beim erstellen der app wird gleich ein Betriebssystem-spezifischer installer erzeugt, der dann das programm als natives programm installiert (inkl. einer privaten JRE-Kopie)


----------



## OnDemand (28. Okt 2014)

Das nenn ich doch mal ne Antwort! Besten Dank jetzt weiß ich wonach ich suchen muss.

Prima, danke!


----------



## OnDemand (28. Okt 2014)

Noch eine blöde Frage, kann man die GUI von FX8 auch mit JavaEE verbinden oder gibt es für JavaEE auch etwas um die GUI zusammenzuklicken?


----------



## Joose (28. Okt 2014)

Soweit ich weiß gibt es für JavaFX ebenfalls GUI Builder fürs zusammenklicken, mit was du diesen Code dann verbindest bleibt dir überlassen.

PS: Ich würde dir raten am Anfang die GUI noch per Hand zu schreiben, damit du weißt wie es geht und wie der Code arbeitet. Sollte das mal sitzen kannst du immer noch auf einen GUI Builder umsteigen


----------



## OnDemand (28. Okt 2014)

GUI per Hand hab ich schon genug geschrieben zu mindestens mit Swing. Was mich interessieren würde, ist ob man für Java EE auch sowas wie nen GUI Builder hat oder ob man da nur über JSP, Servlets eine GUI kreiren kann.


----------



## Joose (28. Okt 2014)

NicoDeluxe hat gesagt.:


> GUI per Hand hab ich schon genug geschrieben zu mindestens mit Swing.



Swing != JavaFX 



NicoDeluxe hat gesagt.:


> Was mich interessieren würde, ist ob man für Java EE auch sowas wie nen GUI Builder hat



Es gibt (soweit ich weiß) GUI Builder für JavaFX.
Wie die Daten dahinter verarbeitet werden ist unerheblich.


----------



## dzim (28. Okt 2014)

Also nur noch mal zum Verständnis: JavaFX ist ein Clientseitiges UI-Framework. Mit JavaEE hat es per se erst einmal nichts zu tun.
Man kann ein Applet in JavaFX (aber auch Swing/AWT) einfach von einem beliebigen Server (Apache, ...) anbieten lassen. Wenn du ein Applet lädst, rufst du eine Webseite mit einem eingebettenen Applet (wird bei JavaFX über JavaScript geregelt), benötigt auf Client-Seite aber ein installiertes Java-Plugin. Das Plugin ist in einem schlechten Zustand und ist eines der Opfer von Googles Chrome - dort werden bald nicht mal mehr im Legacy-Modus diese Art von Plugins möglich sein (Ausnahme: Flash, das basteln die Chrome-Jungs extra so um, dass es gleich mit dem Browser ausgeliefert wird). Das betrifft übrigens auch Silverlight.
Du solltest also *nicht* auch JavaFX setzen, wenn du eine im Browser laufenden Web-Anwendung entwickeln möchtest. Wenn du allerdings eine auf einem Client laufende "stink-normale", aber modern wirkende, und wenn ordentlich gestaltete auch vernünftig animierte, Desktopanwendung entwickeln möchtest, steht dem nichts im Weg. (Wie du die Anwendung dann auslieferst, ist dein Bier - wie oben beschrieben: Download eines Jar-Files, einer fertig "gebundelten" Anwendung inkl. Java-Runtime oder per Web-Start.)

Wegen JavaEE - das ist für die eventuell nötige Serverseitige Logik (z.B. REST-, oder Soap-Services) zuständig, hat aber nichts mit GUI zu tun.
Wenn du ein JavaEE-Backend mit einer rein im Browser laufenden Anwendung möchtest, musst du dich dann noch wohl oder übel mit HTML5 (HTML, CSS, JavaScript) beschäftigen - wobei dir CSS auch bei JavaFX enorm weiterhilft (Stichworte: Theme, Styling).

Wie du die GUI baust, bleibt deinem Geschack überlassen. Es ist auf jeden Fall hilfreich auch den rein in Java geschriebenen Ansatz zu kennen, aber besser ist der Deklarative - mit FXML. Ob die dabei aus dem SceneBuilder oder von Hand geschrieben werden... Geschmackssache. Ich würde SceneBuilder nehmen, weil ich persönlich mit dem XML-Format nicht so gut klar komme. Oder man verwendet - wie ich sonst auch - E(fx)clipse mit seiner JSON-ähnlichen DSL...


----------

