Skip to content

Commit ba2e82b

Browse files
Copilotteggr
andauthored
Add GemsFX to awesome-java-ui (#72)
* Initial plan * Add GemsFX library entry with screenshot and thumbnail Co-authored-by: teggr <837787+teggr@users.noreply.github.com> * Replace GemsFX image with website screenshot (1280x800) and regenerate thumbnail Co-authored-by: teggr <837787+teggr@users.noreply.github.com> * Scroll screenshot to GemsFX README section and regenerate thumbnail Co-authored-by: teggr <837787+teggr@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: teggr <837787+teggr@users.noreply.github.com> Co-authored-by: Robin Tegg <robin@tegg.me.uk>
1 parent e21583f commit ba2e82b

3 files changed

Lines changed: 68 additions & 0 deletions

File tree

gemsfx.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
---
2+
name: GemsFX
3+
status: Production-ready, Very Active
4+
javaVersion: 21+
5+
learningCurve: Easy-Moderate
6+
lastRelease: v3.10.1 (February 2026)
7+
learnMoreText: GemsFX on GitHub
8+
learnMoreHref: https://github.com/dlsc-software-consulting-gmbh/GemsFX
9+
image: images/ui-gemsfx.png
10+
tags:
11+
- Desktop UI
12+
- UI Components
13+
dateAdded: 2026-02-27
14+
---
15+
16+
GemsFX is a rich collection of custom JavaFX controls and utilities developed by DLSC Software & Consulting GmbH and released under the Apache 2.0 licence. It extends the standard JavaFX component set with polished, production-grade widgets that would otherwise require significant custom development effort. The library covers a wide range of UI needs: date and time controls (CalendarView, CalendarPicker, DateRangePicker, TimePicker, DurationPicker), advanced text input (SearchField, TagsField, EmailField, EnhancedPasswordField, ExpandingTextArea), layout helpers (ResponsivePane, DrawerStackPane, PowerPane), media controls (PhotoView, AvatarView, SVGImageView), and utility components like FilterView, InfoCenterPane, and SessionManager.
17+
18+
GemsFX targets JavaFX 23+ and Java 21+, aligns with the modern JavaFX ecosystem, and integrates the optional AtlantaFX stylesheet for contemporary styling. Available from Maven Central with a single dependency, it is easy to add to existing JavaFX projects. The library is actively maintained with frequent releases and is showcased on JFX Central. It is the go-to choice for JavaFX developers who need feature-rich, well-styled UI components without building them from scratch.
19+
20+
## Code Example
21+
22+
```java
23+
import com.dlsc.gemsfx.CalendarPicker;
24+
import com.dlsc.gemsfx.SearchField;
25+
import javafx.application.Application;
26+
import javafx.geometry.Insets;
27+
import javafx.scene.Scene;
28+
import javafx.scene.control.Label;
29+
import javafx.scene.layout.VBox;
30+
import javafx.stage.Stage;
31+
import javafx.util.StringConverter;
32+
import java.util.List;
33+
import java.util.stream.Collectors;
34+
35+
public class GemsFXDemo extends Application {
36+
37+
@Override
38+
public void start(Stage stage) {
39+
// SearchField with suggestion model
40+
SearchField<String> searchField = new SearchField<>();
41+
searchField.setSuggestionProvider(request ->
42+
List.of("Apple", "Banana", "Cherry", "Date", "Elderberry")
43+
.stream()
44+
.filter(s -> s.toLowerCase().contains(request.getUserText().toLowerCase()))
45+
.collect(Collectors.toList())
46+
);
47+
searchField.setConverter(new StringConverter<>() {
48+
public String toString(String s) { return s != null ? s : ""; }
49+
public String fromString(String s) { return s; }
50+
});
51+
52+
// CalendarPicker
53+
CalendarPicker calendarPicker = new CalendarPicker();
54+
55+
VBox root = new VBox(10,
56+
new Label("Search:"), searchField,
57+
new Label("Pick a date:"), calendarPicker
58+
);
59+
root.setPadding(new Insets(20));
60+
61+
stage.setScene(new Scene(root, 400, 300));
62+
stage.setTitle("GemsFX Demo");
63+
stage.show();
64+
}
65+
66+
public static void main(String[] args) { launch(args); }
67+
}
68+
```

images/thumbnail-gemsfx.png

90.6 KB
Loading

images/ui-gemsfx.png

93.7 KB
Loading

0 commit comments

Comments
 (0)