CalendarView
Advanced monthly calendar with single, multi, and date-range selection modes. Supports earliest/latest date limits and customisable header layouts.
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.
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;
Over 40 production-ready controls. Use the filters or search to find what you need.
No controls match your search.
Advanced monthly calendar with single, multi, and date-range selection modes. Supports earliest/latest date limits and customisable header layouts.
A compact field + popup picker built on top of CalendarView. Suitable for forms and toolbars.
Side-by-side dual-month selector for picking a start/end date range, with built-in presets (Today, Last 7 days, etc.).
Compact field + popup date range picker, wrapping DateRangeView for use in forms and filter bars.
Grid-based year selector with configurable rows and columns and earliest/latest year constraints.
Inline or popup year selection control built on top of YearView.
Monthly grid control that lets the user pick a year-month combination.
Compact field + popup picker for selecting a year-month value.
Hour/minute/second time picker with 12 or 24-hour clock, popup support, and linked-field rollover scrolling.
Spinner-style picker for entering durations (days, hours, minutes, seconds, milliseconds) with optional popup.
Styled text field with a built-in search icon and optional pill/round appearance, perfect for toolbars and filter bars.
Powerful auto-complete field with a suggestion popup, history management, configurable commit behaviour, and search icon.
Password field with a show/hide toggle so users can reveal the text they typed.
Text field with built-in email syntax validation, domain auto-completion, and multi-address support.
Multi-value text field where typed values are committed as removable chips. Supports autocomplete suggestions.
A TextArea that grows vertically to fit its content, eliminating scroll bars for short multi-line inputs.
A TextArea with a drag handle that lets users resize it freely at runtime.
TextArea that enforces a maximum character count with a live counter and configurable warning threshold.
Overlay dialog system with a translucent scrim, animation, and support for multiple stacked dialogs within a single scene.
StackPane with an animated sliding drawer that rises from the bottom, with title, close gesture, and configurable max height.
All-in-one container combining ResponsivePane, DialogPane, GlassPane, and InfoCenterPane for complex application layouts.
Sidebar + content pane that automatically switches between side-by-side and overlay modes based on available width.
Semi-transparent overlay that blocks user interaction with underlying content. Supports fade-in/out animation and configurable opacity.
Wrapper pane displaying a progress indicator while data loads, then revealing child content. Manages IDLE, LOADING, OK, and ERROR states.
TilePane variant that stretches tiles horizontally to fill the available width, eliminating gaps on the right edge.
Pane that positions up to three children — start, center, and end — commonly used for header/toolbar layouts.
Zoomable, scrollable image view with clip-shape support and an editable mode for selecting/replacing photos.
Circular user avatar with fallback initials, configurable arc radius, and size presets for user profile displays.
Renders scalable SVG graphics without rasterisation, powered by the JSVG library. Supports file, URL, and classpath sources.
Displays a payment method icon (Visa, Mastercard, PayPal, and more) in both light and dark variants.
Smooth circular progress ring with configurable stroke width, fill colour, and indeterminate animation.
Arc-shaped progress indicator with configurable start/end angles, stroke colour, and arc size — great for dashboards.
Half-circle gauge indicator, ideal for dashboard-style widgets that show a value within a bounded range.
Data filtering control with a search field, dropdown filter groups, and chip display of active filters, backed by an observable predicate.
Horizontally-split list view displaying items across multiple columns with drag-and-drop reordering between columns.
Visualises hierarchical tree structures as a node graph with configurable layout directions and animated expansion.
Slide-in notification center with grouped notifications, mark-as-read, and configurable animations — similar to macOS Notification Center.
Scrollable horizontal strip of items with animated scrolling, loop selection, and always-center modes — great for carousels.
Displays the layout and geometry of all connected screens/monitors — useful for multi-monitor management UIs.
GridPane-based table with columns and rows, offering pixel-perfect cell alignment without the overhead of a full TableView.
ListView with integrated pagination controls — page size selector, previous/next buttons, and page number indicators.
GridTableView with built-in pagination, combining the precise grid layout with page-based data loading.
Stand-alone pagination navigation bar — can be paired with any data view that needs page navigation UI.
Split view with a draggable divider to compare two visual states — ideal for before/after image comparisons or UI diffs.
Badge-style chip node representing a model object, with an optional close button and configurable content display mode.
Horizontal stacked bar that visualises proportional segments, each with its own colour and configurable minimum size.
Flexible Region that expands to fill available space in HBox or VBox, eliminating boilerplate HBox.setHgrow / VBox.setVgrow calls.
Wraps any node and applies a gradient edge mask, making content fade out at the edges for a polished overflow effect.
Popup overlay with a connecting arrow pointing at the owning node. Supports detachable mode and configurable arrow directions.
Read-only text display control with optional title, subtitle, and graphic — ideal for detail views and form labels.
Helper classes, converters, and managers in the com.dlsc.gemsfx.util package.
javafx.util.Duration.StringConverter<E extends Enum> that uses enum name or a custom label function for display.StringConverter backed by a single Function<T, String> lambda — no boilerplate subclassing.MultipleSelectionModel implementation backed by an observable list, suitable for custom list/grid controls.Reactive list bindings in the com.dlsc.gemsfx.binding package.