v3.10.1 JavaFX 25 Java 24+ Apache 2.0

GemsFX
Custom Controls for JavaFX

A rich open-source collection of polished JavaFX controls and utilities — from date pickers and search fields to paging, tree views, notification centers, and more.

Installation

Add GemsFX to your project with Maven or Gradle.

<dependency>
    <groupId>com.dlsc.gemsfx</groupId>
    <artifactId>gemsfx</artifactId>
    <version>3.10.1</version>
</dependency>
implementation 'com.dlsc.gemsfx:gemsfx:3.10.1'
// in your module-info.java
requires com.dlsc.gemsfx;

Utilities

Helper classes, converters, and managers in the com.dlsc.gemsfx.util package.

SessionManager
com.dlsc.gemsfx.util
Persists and restores application state (window positions, dividers, etc.) using the Java Preferences API.
API →
StageManager
com.dlsc.gemsfx.util
Remembers and restores a Stage's position, size, and maximised state across application restarts.
API →
HistoryManager
com.dlsc.gemsfx.util
Interface + implementations for managing a history list of typed values (e.g. recent searches). Includes in-memory and Preferences-backed variants.
API →
RecentFiles
com.dlsc.gemsfx.util
Maintains a most-recently-used file list, persisted via Java Preferences, with configurable max size.
API →
DurationConverter
com.dlsc.gemsfx.util
CSS StyleConverter that maps a numeric millisecond value in CSS to a javafx.util.Duration.
API →
EnumStringConverter
com.dlsc.gemsfx.util
Generic StringConverter<E extends Enum> that uses enum name or a custom label function for display.
API →
SimpleStringConverter
com.dlsc.gemsfx.util
Lightweight StringConverter backed by a single Function<T, String> lambda — no boilerplate subclassing.
API →
FocusUtil
com.dlsc.gemsfx.util
Utility methods for managing JavaFX focus — finding the focused node, traversing focus chains, and requesting focus on a deferred pulse.
API →
ListUtils
com.dlsc.gemsfx.util
Collection helpers: safe get, move-item, swap, and partition operations on ObservableLists.
API →
CustomMultipleSelectionModel
com.dlsc.gemsfx.util
Ready-to-use MultipleSelectionModel implementation backed by an observable list, suitable for custom list/grid controls.
API →
ResizingBehaviour
com.dlsc.gemsfx.util
Attaches drag-to-resize mouse handlers to any Region, supporting top, bottom, left, right, and corner edge resizing.
API →
SVGUtil
com.dlsc.gemsfx.util
Helper methods for loading SVG documents and converting them to JavaFX Images at arbitrary resolutions.
API →

Bindings

Reactive list bindings in the com.dlsc.gemsfx.binding package.

AggregatedListBinding
com.dlsc.gemsfx.binding
Aggregates values from multiple observable lists into a single computed binding (sum, count, etc.).
API →
FlattenedNestedListStreamBinding
com.dlsc.gemsfx.binding
Flattens a nested observable list structure into a single Stream-based binding that reacts to nested changes.
API →
TransformedNestedListBinding
com.dlsc.gemsfx.binding
Applies a transformation function to each element of a nested observable list and exposes the result as a flat observable list binding.
API →
NestedListChangeTracker
com.dlsc.gemsfx.binding
Tracks changes deep inside a nested observable list hierarchy and fires invalidation events when inner lists mutate.
API →