Skip to main content
Entwickler Themen
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

2.1.1. JavaFX mit NeitzelLib

Das Modul fx lädt FXML und verbindet Controls mit den Attributen eines gewöhnlichen Java-Models. Die Bibliothek erzeugt dazu ein ViewModel mit JavaFX-Properties. Controller übernehmen Ereignisse, Converter passen Werte an, und Components kapseln wiederverwendbare Teilansichten.

Die Dokumentation

Kapitel Inhalt
Schnellstart Vollständiges neues Maven-Projekt
Architektur und MVVM Zuständigkeiten, Ladeablauf, Identität und Lebensdauer
Models und Bindings Attribute, Pfade, Richtungen, Converter und Computed
Components und Collections Teilansichten, Repeat, Auswahl und Table
Nachrichten und UI-Helfer Message, IntegerSpinners und TraySupport
Generierte ViewModels Typisierte Zugriffe und Default-Registrierung
Referenzanwendung Person Desk aus fx-example
Fehlersuche Build, FXML, Injection, Module und Laufzeitgrenzen

Abhängigkeiten

Die folgende Tabelle beschreibt den untersuchten Quellstand. Sie ist keine Zusage für beliebige neuere Versionen.

Bestandteil Version beziehungsweise Beziehung Aufgabe der Anwendung
JDK Java 21 Passendes JDK für Build und Start wählen
Maven Ab 3.8.6, Wrapper 3.9.11 Wrapper oder lokale Installation verwenden
Bibliothek de.neitzel.lib:fx:1.0-SNAPSHOT Lokale Artefakte zunächst bauen und installieren
Eigene Module fx benötigt core und injection Maven löst sie transitiv auf
JavaFX 21.0.7, base/graphics/controls/fxml/web Plattformabhängige native Artefakte bei der Auslieferung berücksichtigen
Paketscan Reflections 0.10.2 Kommt über injection
Injection-Annotationen jakarta.inject-api 2.0.1 Jakarta- statt javax.inject-Annotationen verwenden
Logging SLF4J API 2.0.17 Ein Backend wählen; das Beispiel nutzt slf4j-simple 2.0.17
Bibliotheks-Build Unter anderem Lombok 1.18.42 Für gewöhnlichen Anwendungscode nicht erforderlich
Designer-Werkzeuge Optionales Preview-API und Model-Processor Nur für den gewählten Designer-Ablauf hinzufügen

Ein Projekt benötigt zunächst nur die fx-Dependency und gegebenenfalls ein Logging-Backend. Generierte ViewModels, Scene Builder Kit und Designer sind keine Voraussetzung für ViewLoader.

Öffentliche API nach Aufgaben

Aufgabe Einstiegspunkte
Laden ViewLoader.load, LoadedView.getRoot, getViewModel, property
Präsentationszustand ViewModel.property, geschütztes storedProperty, HasViewModel, @ViewModelClass
FXML-Deklarationen BindingList, DirectBinding, ComputedBinding, Repeat
Umwandlung Converter.toControlValue, toAttributeValue
Tabelle Table mit collection/row/columns/selection, Column mit header/attribute/width
Nachrichten Message, Message.Severity, ViewModel.addMessage, getMessages, getLatestMessage, MessagePopup
Generierte Defaults ViewModelRegistry, ViewModelRegistration, ViewModelRegistrations, ViewModelDefaults.select
Unabhängige Helfer IntegerSpinners.nonNegative, TraySupport, Backend, Registration

Interne Loader, Binding-Applier und Identitäts-Caches sind keine Erweiterungs-API. Die Bibliothek bleibt eine Entwicklungssammlung; insbesondere sind Lebensdauer und Threading bei größeren Anwendungen bewusst zu planen.