JavaFX FXML vs. Java Code

Nutzt ihr den Scene Builder zur Erstellung der UI ?

  • Immer

  • Meistens

  • Gelegentlich

  • Nie


Die Ergebnisse sind erst nach der Abstimmung einsehbar.

Ernesto95

Aktives Mitglied
Moin zusammen !

Wollte mal nach euren Erfahrungen fragen auf welchem Wege ihr eure UIs bei JavaFX Anwendungen erstellt.

Nutzt ihr über den Scene Builder die Möglichkeit die View mit Hilfe von FXML zu erstellen, oder codiert ihr die View in Java ?

Ich persönlich nutze überwiegend letztere Möglichkeit in Java, wobei ich lediglich die Position der Controls festlege. Alles weitere definiere ich im CSS. Meine Gründe hierfür sind folgende, wobei keiner wirklich stichhaltig ist sondern lediglich meine rein subjektive Meinung widerspiegelt.

- Falls es mal einen Fehler gibt der über den Scene Builder nicht auflösbar ist müsste ich im FXML per Hand ran. Die Syntax von FXML muss man dann auch erst mal wieder verstehen um hier agieren zu können.
- Der Scene Builder ist sehr umfangreich, viele dort möglichen Einstellungen gehören meiner Meinung nach nicht ins FXML sondern ins CSS (Beispiel Farben, Padding, Margin). Somit verleitet der Scene Builder durch die umfangreichen Möglichkeiten zu einer unsauberen Programmierung ohne saubere Trennung zwischen FXML und CSS.
- Wenn ich programmiere möchte ich programmieren und nicht klickibunti irgendwas per Drag & Drop durch die Gegend schieben

Ein ganz klarer Vorteil des Scene Builders wäre das Programmieren im Team, wo sich Programmierer um den Code und Designer um das Layout kümmern. Die Designer bräuchten für die Arbeit mit dem Scene Builder nicht wirklich Kenntnisse von Java und könnten sich ganz auf Ihre Aufgabe konzentrieren.

Wie seht ihr das und welchen Weg geht ihr ? Über Teilnahme an der Abstimmung und eure Kommentare würde ich mich freuen !

Grüße Ernesto95
 

dzim

Top Contributor
Ich habe mit "nie" geantwortet. Zum einen stimmt das, da ich tatsächlich nie FXMLs mit SceneBuilder erstelle. Oder manuell. Zum anderen aber ist es falsch, da ich in Eclipse die DSL FXGraph verwende (JSON-ähnliche Struktur) und komme damit seit Jahren sehr gut klar.
Ist MVC oder MVVM mit FXML besser? Nö. Nur einfacher. Auch finde ich die Trennung von deklarativer GUI und programmatischen Controller einfach besser (Hallo, HTML(5)...). Und auf 'nem Telefon gemessen macht das Laden von FXML kaum Overhead (in meinem Szenario jedenfalls).

Mache ich all das Styling in CSS? Nein, denn so schön und verlockend es auch ist, es bringt andere Probleme (performance) mit sich. Für PCs in normalen Situationen unwichtig, aber im Mobile-Bereich oder bei sehr komplexen CSS (inkl. Effects) auch auf PCs relevant - allerdings spielt hier auch die Anzahl und Art der Nodes eine Rolle.

Bezüglich Trennung von FXML und CSS: Vergiss nicht, dass es auch in HTML nicht besser ist (über die Vergewaltigung des style-Attributs) und vergiss auch nicht, dass es durchaus Leute gibt, denen das Standart-Thema ausreicht und die das vergewaltigte CSS von JavaFX nicht mit Lötkolben und Kneifzange anfassen wollen. Kennst du Gerrit Grunwald (https://harmoniccode.blogspot.ch/) ? Der ist ziemlich gut im Bauen von Custom Controls. Hab ihn kürzlich mal persönlich kennen lernen können und er sagt: Vergiss CSS, wenn du Performance brauchst, oder nicht das Thema komplett umkrempeln möchtest... In dem Fall also hast du dann wirklich ein Problem.
 

Ernesto95

Aktives Mitglied
Hallo dzim,

danke für deinen Beitrag.

FXGraph hatte ich bis dato noch gar nicht aufm Schirm. Hab mich mal ein wenig durchgegoogelt, kann aber noch nicht wirklich erkennen was genau hier die Vorteile sein sollen. Ich verzichte hier wie bei FXML auf die mir bekannten Syntax von Java, genieße dadurch aber nicht die Vorteile die der Scene Builder bietet.

Was hast du für Argumente die für die Erstellung der GUI mit dem FXGraph sprechen ?

Was das Thema CSS angeht. Ich kann mir durchaus vorstellen das die Nutzung von CSS langsamer ist als pures Java. Auf der anderen Seite aber basieren doch doch die JavaFX Themes auf CSS (Caspian bźw. Modena), demnach wären die genannten Performance einbußen doch ein generelles Problem von JavaFX, oder ? Aus welcher Datei sich die Daten final gezogen werden sollte doch keinen weiteren Einfluß auf die Performance bringen, außer vielleicht dem einmaligen und somit zu vernachlässigendem Laden und Parsen der zusätzlichen CSS Datei(en).

Grüße
 

dzim

Top Contributor
Nein, ich habe keine echten (und sinnvollen) Pro-FXGraph-Argumente. Ich habe ziemlich früh mit dem neuen JavaFX begonnen (JavaFX 2.1 oder so - ca. 2011/2012) und hatte keine Lust auf eine separate Anwendung für die GUI. Aber auch keine Lust auf XML. Und da kam einfach das Plugin für Eclipse (welches ich damals als einzig wahre IDE angesehen habe - man lernt dazu :D) und ich konnte FXGraph schreiben und mir das Ergebnis direkt im JavaFX-Preview ansehen kann (da man JavaFX ohne Probleme in SWT integrieren kann - selber UI-Thread... - und der Macher des Plugins hat das ausgenutzt).
Das war's aber auch schon.
Heute kann man SceneBuilder (wenn auch eine nicht ganz aktuelle Version) z.B. in IntelliJ integriert nutzen - das ist auch ok!

CSS: Ja das stimmt - man kommt nicht drumherum, dass CSS "da" ist. Aber man kann mit CSS (wenn man seine Oberfläche sehr heftig damit styled - also viele eigene Style-Klassen nutzt tatsächlich etwas langsamer machen, wenn man sehr viele GUI-Elemente hat. Speziell, wenn man diese Nodes "alle auf einmal" lädt. Eine Lektion, die ich auf die harte Tour gelernt habe, da ich gerade (noch) an einer JavaFXPorts-App für Android und IOS arbeite. Dort kann man damit nämlich kräftig auf die Schnauze fliegen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T FXML Datei in Java Code einbinden: javafx.fxml.LoadException AWT, Swing, JavaFX & SWT 2
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
R JavaFX Java FXML Vererbung in Klassen AWT, Swing, JavaFX & SWT 9
S java.fxml.load.exception und keine automatische Aktualliseriung der Mainausgabe AWT, Swing, JavaFX & SWT 5
D Java FXML mehrere Fenster AWT, Swing, JavaFX & SWT 4
S JavaFX FXML-Editor mit Java 7? AWT, Swing, JavaFX & SWT 2
X Java Fxml laden AWT, Swing, JavaFX & SWT 4
dzim UI aus FXML und Java gemischt - NPE? AWT, Swing, JavaFX & SWT 4
MiMa Darstellung von FXML ateien nicht korrekt (SceneBuilder) AWT, Swing, JavaFX & SWT 2
Georges456 NetBeans am Mac leider ohne FXML AWT, Swing, JavaFX & SWT 17
R Fxml findet controller nicht AWT, Swing, JavaFX & SWT 2
thor_norsk JavaFX, FXML und SceneBuilder AWT, Swing, JavaFX & SWT 6
Jose05 JavaFx Fxml: GUI aus einer anderen Klasse starten AWT, Swing, JavaFX & SWT 1
K Bekomme (u.a) javafx.fxml.LoadException trotz "korrektem" Code AWT, Swing, JavaFX & SWT 8
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
N Braucht man fxml AWT, Swing, JavaFX & SWT 3
S Fehler beim Öffnen weiterer FXML AWT, Swing, JavaFX & SWT 11
Jose05 JavaFX: eigene FXML-Datei für einen Button AWT, Swing, JavaFX & SWT 3
M mvvm umsetzen ohne fxml AWT, Swing, JavaFX & SWT 0
L JavaFX .fxml laden klappt nicht AWT, Swing, JavaFX & SWT 16
J JavaFX - Included FXML - Entfernen feststellen AWT, Swing, JavaFX & SWT 2
L JavaFX javafx.fxml.LoadException bei einem Taschenrechner AWT, Swing, JavaFX & SWT 5
G JavaFX Verständnisfrage mit parametrisierten Methoden und FXML AWT, Swing, JavaFX & SWT 21
Ø Ein FXML-File mehrfach einfügen AWT, Swing, JavaFX & SWT 6
MiMa Schliessen eines FXML Fensters? AWT, Swing, JavaFX & SWT 10
OSchriever Auf Stage von FXML-Controller zugreifen AWT, Swing, JavaFX & SWT 12
L JavaFX Exception nach includieren einer fxml // nested controller AWT, Swing, JavaFX & SWT 1
R FXML File kann nicht hinzugefügt werden! AWT, Swing, JavaFX & SWT 2
J FXML - Internationalisierung - Behandung key not found AWT, Swing, JavaFX & SWT 39
J import javafx.fxml* bei JavaFX 13 geht nicht mehr AWT, Swing, JavaFX & SWT 7
S JavaFX Variablen in einem FXML File verwenden AWT, Swing, JavaFX & SWT 8
T Fxbefehle aus Main umwandeln in @FXML AWT, Swing, JavaFX & SWT 21
L JavaFX JavaFX, FXML und Guice? AWT, Swing, JavaFX & SWT 0
H 3 verschiedene Nachrichten in einer FXML View die Infos kommen aus DB AWT, Swing, JavaFX & SWT 4
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
TheWhiteShadow JavaFX Dependencies in fxml AWT, Swing, JavaFX & SWT 17
M JavaFX Altes Fenster (FXML Datei) löschen AWT, Swing, JavaFX & SWT 16
F Java FX Von der Fxml Datei zum Objekt AWT, Swing, JavaFX & SWT 8
F FXML Datei aus dem SceneBuilder in Eclipse aufrufen AWT, Swing, JavaFX & SWT 1
I MediaPlayer (MediaView) in FXML (source) AWT, Swing, JavaFX & SWT 0
I FXML: StackPane als Root-Element AWT, Swing, JavaFX & SWT 5
I Bild über FXML (ImageView, Image) anzeigen AWT, Swing, JavaFX & SWT 1
MiMa Übergeben von Paramter bei FXML Aufruf? AWT, Swing, JavaFX & SWT 8
MiMa Wie bettet man Programmcode in JavaFX FXML ein? AWT, Swing, JavaFX & SWT 34
H Java FX List<AlbumsBean> in FXML TableView AWT, Swing, JavaFX & SWT 37
B FXML GUI - Button ausblenden AWT, Swing, JavaFX & SWT 1
D JavaFX Einbinden einer .fxml AWT, Swing, JavaFX & SWT 1
L JavaFX Zugriff auf HostServices im FXML Controller AWT, Swing, JavaFX & SWT 1
T Pfad zur *.fxml AWT, Swing, JavaFX & SWT 8
L Liniendiagramme mit FXML: Quellen mit konkreten Beispielen AWT, Swing, JavaFX & SWT 0
S JavaFX fxml datein mit menübar ändern AWT, Swing, JavaFX & SWT 20
K JavaFX JavaFX und FXML AWT, Swing, JavaFX & SWT 6
F Problem mit der FXML Rectangle Shape AWT, Swing, JavaFX & SWT 2
H JavaFX aus der .fxml Datei einen Konstruktor bedienen AWT, Swing, JavaFX & SWT 3
H JavaFX via .fxml einen abgeleiteten Button erstellen... AWT, Swing, JavaFX & SWT 4
E Java FX FXML Problem mit html Scriptausführung AWT, Swing, JavaFX & SWT 2
R Java FX - Fxml - relative Größenangaben für Breite und Höhe einer TextArea AWT, Swing, JavaFX & SWT 8
U JavaFX Zeichenprogramm mit JavaFX FXML AWT, Swing, JavaFX & SWT 7
B Java FX FXML Textarea SceneBuilder als XML Editor AWT, Swing, JavaFX & SWT 1
C JavaFX Tiefgestellte Zeichen in fxml AWT, Swing, JavaFX & SWT 2
M Java FX SceneBuilder 2.0, FXML, Controller AWT, Swing, JavaFX & SWT 1
B FXML-Layoutdateien schützen AWT, Swing, JavaFX & SWT 4
7 JavaFX Verwendung einer ResizableCanvas-Klasse in fxml-Datei AWT, Swing, JavaFX & SWT 3
C JavaFX Auf Nodes einer FXML-Datei in start Methode zugreifen AWT, Swing, JavaFX & SWT 5
KrokoDiehl JavaFX Gleiche Controller-Instanz für inludiertes FXML AWT, Swing, JavaFX & SWT 1
I Scene Builder kann .fxml nicht mehr laden AWT, Swing, JavaFX & SWT 3
J JavaFX Zugriff auf FXML-Variablen eines anderen Controllers AWT, Swing, JavaFX & SWT 2
N JavaFX GUI Elemente einer anderen (FXML)Klasse ansprechen AWT, Swing, JavaFX & SWT 16
M JavaFX FXML Standartgröße festlegen AWT, Swing, JavaFX & SWT 5
L JavaFX Verständnisfrage zu JavaFX FXML und Controller-Klasse AWT, Swing, JavaFX & SWT 1
Z JavaFX Inhalt einer ViewTable durch Aktion einer Menubar ändern welche in einer anderen fxml ist AWT, Swing, JavaFX & SWT 4
wolfgang63 JavaFX Zugriff auf Guiobjekte die über FXML erstellt wurden AWT, Swing, JavaFX & SWT 2
D JavaFX @FXML Annotation mit Klassen und Instanzen verbinden? AWT, Swing, JavaFX & SWT 5
A Databinding in FXML-Datei AWT, Swing, JavaFX & SWT 1
K JavaFX Erzeugen dynamischer Layouts in fxml AWT, Swing, JavaFX & SWT 3
M JavaFX Stage in einer FXML-Controllerklasse ermitteln? AWT, Swing, JavaFX & SWT 5
G Swing, JavaFx - Felder aus FXML sind null AWT, Swing, JavaFX & SWT 6
M JavaFX Von FXML-Controllerdatei Daten zurückgeben AWT, Swing, JavaFX & SWT 6
M Komplexe Eingabenmasken in FXML definieren? AWT, Swing, JavaFX & SWT 17
M Java FX Innerhalb einem FXML-Dialog weiteren FXML-Dialog einblenden AWT, Swing, JavaFX & SWT 3
E JavaFX fxml files wechseln AWT, Swing, JavaFX & SWT 4
H Taschenrechnerprojekt in Javafx - Frage zu den Buttons in FXML AWT, Swing, JavaFX & SWT 1
T JavaFX FXMLController für mehrere FXML? AWT, Swing, JavaFX & SWT 7
M JavaFX Parameter für Custom Control in FXML übergeben? AWT, Swing, JavaFX & SWT 4
C JavaFX Fxml and stylecheets AWT, Swing, JavaFX & SWT 5
N FXML Dokument laden AWT, Swing, JavaFX & SWT 1
Tort-E JavaFX FXML Grundsatzfrage AWT, Swing, JavaFX & SWT 2
K Controls in Controls / Nested fxml AWT, Swing, JavaFX & SWT 1
D JavaFX Mysteriöser Dropshadow hinter Tablabelschrift - Schatten kann nicht entfernt werden (FXML + CSS) AWT, Swing, JavaFX & SWT 6
G JavaFX NullPointerException bei Zugriff auf FXML Element AWT, Swing, JavaFX & SWT 0
S JavaFX FXML AWT, Swing, JavaFX & SWT 3
G JavaFX Fxml AWT, Swing, JavaFX & SWT 2
K JavaFX Tableview mit fxml ohne Aktualiserung trotz Thread AWT, Swing, JavaFX & SWT 13
F JavaFX Auf FXML ImageView zugreifen AWT, Swing, JavaFX & SWT 6
S Aus XML Datei FXML generieren AWT, Swing, JavaFX & SWT 4
B JavaFX FXML - Eclipse einrichten AWT, Swing, JavaFX & SWT 2
V JavaFX - fxml-Datei laden (neben CSS) AWT, Swing, JavaFX & SWT 2
V Guis erstellen mit FXML und javaFX gemischt AWT, Swing, JavaFX & SWT 5
Juelin Für Java-Spezialisten AWT, Swing, JavaFX & SWT 4
Juelin Java <-> Delphi AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben