Eclipse Konfiguration und Verwendung für JavaFX-App-Entwicklung

TODO: auch SceneBuilder-Konfig

1. JRE-Konfiguration mit JavaFX

Es gibt mehrere Möglichkeiten, JavaFX in Eclipse zu konfigurieren. Die hier vorgestellte ist aus jetziger Sicht die funktional beste:
Hinzufügen weiterer Bibliotheken zu JRE-Konfigurationen.

Der Grund für die Wahl dieser Variante ist die anderenfalls fehlende Javadoc-Zugriffsmöglichkeit per Browser direkt aus Eclipse heraus.

Im Prinzip werden dem jeweiligen JRE die JavaFX-Bibliotheken als "System-Library" hinzugefügt. Damit kann auch zu jeder Bibliothek eine separate Javadoc-Dokumentation konfiguriert werden.

Die Konfiguration der nötigen Run-Configuration für das Ausführen der aktuellen App kann über einmalig hier festgelegte "Default VM Arguments" erfolgen und muss nicht separat für jede App erfolgen.

1.1. Konfigurations-Details

1.1.1. Hinzufügen der JavaFX-Bibliotheken

  • Öffnen von Menü Window  Preferences, dort in der linken Hierarchieliste nach Java / Installed JREs navigieren. Falls dort das gewünschte JRE (üblicherweise das JDK) noch nicht gelistet ist: siehe Eclipse IDE Installation, Grundkonfiguration, Probe-Projekt.

  • Nun Doppelklick auf das gewünschte JRE. Es öffnet sich der Dialog zur JRE-Konfiguration.

  • Button Add External JARs…​, der Datei-Selektor öffnet sich, Navigation zum Verzeichnis
    C:\Users\mxrenkin\Java\JavaFX\javafx-sdk-17.0.2\lib.

  • Darin ersten Eintrag wählen (javafx.base.jar), Shift gedrückt halten und vorletzten Eintrag (javafx.web.jar) wählen. Dadurch werden alle dazwischenliegenden Einträge mit-ausgewählt. Nun Öffnen klicken.

Damit ist dieser Schritt erledigt.

1.1.2. Default VM Arguments konfigurieren

Der letzte unvermeidliche Schritt (außer man wählt einen anderen Ansatz) ist das Setzen der Default VM Arguments. Dazu ist folgender Text in das entsprechende Textfeld zu kopieren (--module-path anpassen):

--module-path C:\Users\maier\Java\JavaFX\javafx-sdk-17.0.2\lib --add-modules javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web

Alternativ kann der --module-path mittels String Substitution Variable JFX-17 gesetzt werden:

Zuerst Variable unter Menü Window → Preferences, dort Run/Debug → String Substitution mit Button New …​ anlegen:
Name: hier JFX-17
Value: z.B. für Windows etwas wie C:\Users\maier\Java\OpenJFX\javafx-sdk-17.0.2\lib
Description: z.B. Local JavaFX 17 Path

Danach --module-path ${JFX-17} --add-modules …​ (Rest wie oben) setzen.

1.1.3. Was funktioniert bis hierher

Im Prinzip kann nun eine JavaFX-App entwickelt und getestet werden. Es besteht jedoch noch ein massiver Mangel:

Für JavaFX-Elemente (Klassen, Methoden, …​) steht nun keine Javadoc-Info zur Verfügung – z.B. werden bei Autocompletion lediglich die verfügbaren Methodensignaturen angezeigt, aber keine Javadoc-Infos dazu. Bei Tooltipps zu JavaFX-Elementen erscheint bloß ein Hinweis, dass weder Sourcen noch Javadoc verfügbar ist.

Um diese wichtige Hilfe zu aktivieren, müssen wir zumindest entweder die JDK-Sourcen oder die Javadoc-Dokumentation konfigurieren (derzeit scheint in Eclipse ein Bug die Anwesenheit der Sourcen für korrekte Hilfe-Anzeige zu erfordern).

Am besten jedoch beides, denn:

  • bei Fehlen der Sourcen ist kein tiefergehendes Debugging in die JavaFX-Sourcen möglich (siehe auch Hinweis oben)

  • bei Fehlen der Javadoc-Doku kann die lokale Javadoc-Doku nicht für genaueres Studium per Klick im Browser geöffnet werden.

Daher sollten die beiden nachfolgenden Konfigurationsschritte getan werden.

1.1.4. JavaFX-Sourcen-Konf. für Autocompletion und Debugging

Dazu nochmals Menü Window  Preferences, dort in der linken Hierarchieliste zu Java / Installed JREs, darin die mit JavaFX erweiterte JRE doppelklicken.

  • Eintrag für javafx.base.jar aufklappen

  • Doppelklick auf Source Attachment

  • Radio-Button auf External location

  • Button External File…​, Datei C:\Users\mxrenkin\Java\JavaFX\javafx-sdk-17.0.2\src.zip auswählen.

  • Nun VOR dem Schließen den eingetragenen Pfad ins Clipboard kopieren (wird weitere 6 x benötigt!), dann OK (Hinweis: Pfad verwendet '/' anstelle von Windows '\' !!)

  • Nun ist der Pfad unter Source Attachment sichtbar.

  • Für alle weiteren javafx.*.jar wiederholen, da der Sourcen-Pfad aber für alle gleich ist, kann er direkt ins Path-Feld kopiert werden.

  • Abschließen mit Finish und danach Apply and Close

Damit ist alles außer Anzeige der vollständigen Javadoc-Seite im Browser funktionsfähig.

1.1.5. JavaFX-Javadoc-Konf. für Lesen im Browser

Hier kann das Prinzip von tools/tools121_eclipse-inst+grdkonf.adoc#id_jre-javadoc-konf und von oben übernommen werden.
Der zu verwendende Archive path ist (f. User maier): C:\Users\maier\Java\JavaFX\openjfx-17.0.2-javadoc.zip,
der Path within archive ist: javafx-17.0.2-javadoc. Validieren nicht vergessen! Die beiden Copy/Paste Aktivitäten für die restlichen Module können in 2 "Runden" vorgenommen werden.
Bei der 2. Runde (für den Path within archive) sollte auch die Validierung erfolgen.

1.1.6. SceneBuilder für das Bearbeiten von *.fxml Dateien konfigurieren

Wenn nicht schon getan, SceneBuilder laut tools/tools141_javafx-basics.adoc#id_scenebuilder-install installieren.

Die App ist im Normalfall (f. User maier) erreichbar als C:\Users\maier\AppData\Local\SceneBuilder\SceneBuilder.exe.