JavaFX Links of September 2023

This month OpenJDK and OpenJDK 21 got officially released, so links to the new downloads but also to the early access builds of the next one!

Here is the overview of the JavaFX LinksOfTheWeek that got published on jfx-central.com during September.

Core

Announcement by GluonHQ: “We’re proud to announce JavaFX 21 GA. Download the SDK/jmods from gluonhq.com/products/javafx/ or get the artifacts from Maven central. Release notes with many fixes and enhancements at gluonhq.com/products/javafx/openjfx-21-release-notes. Great work by a growing number of contributors!”
Release notes by Kevin Rushforth on GitHub.
Builds are available from java.net:

Linux / x64
macOS / AArch64
macOS / x64
Windows / x64
And on the Gluon website.

EA (early access) builds of JavaFX 22!

JavaFX 22 Early-Access Builds are available here:
jdk.java.net/javafx22
gluonhq.com/products/javafx
Issues addressed in this build.
The proposed schedule for JavaFX 22:
RDP1: Jan 11, 2024 (aka “feature freeze”)
RDP2: Feb 1, 2024
Freeze: Feb 29, 2024
GA: Mar 19, 2024
JavaFX 22-ea is designed to work with JDK 22-ea, but it is known to work with JDK 17 and later versions.
Dirk Lemmermann is experimenting with 22-ea+9: “Showing correct bold text on macOS and much lower initial memory consumption in our CRM software”.

A message by Johan Vos: “One of the great (non-technical) things about JavaFX is that it is not owned by a single company that tries to use it for its business strategy (e.g. like Google does with most of their “free” stuff). It is really the wide JavaFX ecosystem that drives JavaFX forward, and that allows for pure and honest innovation.”

Applications

Onkel Stipe shared a screenshot of SoundLab: “I developed it to investigate in generating realtime virtual analog sounds. The Oscilloscope feels quite analog. It also has a realtime spectrum and a view called “klangteppich”, which nicely imitates the spectral view of audacity.”
WhiteWoodCity is upgrading dillon-boot-fx, a Permission Management System UI, to JDK 17+ and also providing jigsaw support.
Fx Calculator by Maciek Gorywoda is now available at Google Play Store! “Written in Scala 3, JavaFX, and built with GraalVM Native Image”
The next version of JDKMon, the tool to keep your Java installations up-to-date, will now also show you the dates of the next OpenJDK update and the next OpenJDK release, says Gerrit Grunwald.
JabRef is using Java 21 for their new release 5.10.
The Logic simulator by OrangoMango got updated to v1.1 update: “A new web version made with WebFX, bug fix, RGB lights and some UI changes.”
surajit completed M-AID (Retail Pharmacy Management): “With a mobile app that is always connected to the desktop app via Wi-Fi, no internet is needed for operations.”
RNArtist by Fabrice Jossinet offers now an undo/redo feature: “It can even iterate automatically over its history. Take a look at my attempt to produce a better layout for an archaea LSU rRNA (green blinking = redo, orange = undo).”
Biometrics Engineer shared a video showing a “JavaFX Linux Biometric Time and Attendance – Staff Registration DEMO that is implemented on Ubuntu Linux using ARATEK A600 Biometric Fingerprint Scanner.”
RNArtist is announcing: “Installers will be available next week. Thanks to the very good tool JDeploy, you will automatically get the latest version after each launch of RNArtist. Now it’s time to write some documentation…”

And shared screenshots of the tool 3 years ago versus now, with some very nice comments and links to the project in the thread.
BTW, as someone pointed out, you can maybe use this tool to design airport terminals…

Sean Phillips is using Trinity for: “Detecting ChatGTP generated medium size text blocks using manifold approximation, polyhedral volume techniques and JavaFX 3D. Sorry not sorry bad guys.”

And Apple M2 silicon (Arm64) builds now supported through Trinity’s GitHub Actions thanks to the magnificent CI work of samypr100!

Malik Hamida is working on a micro banking system project
Eltayeb Ibrahim created a user-friendly Product Management System using JavaFX for the frontend and Node.js with Express.js framework for the backend.
Heshan Thenura Kariyawasam made a File Shredder app and shared the sources.

Games

London Softworks is working on a new Particle Editor and making progress with an OpenGL context being rendered to a JavaFX Canvas object (in real-time): “Making good use of FBO’s for this one. Now to sort the colour issue out…”
OrangoMango announces “Chess 2.0 is finally complete”: “The WebFX version is now available at orangomango.itch.io/chess. Play single player against stockfish. Play multiplayer against a friend in LAN or on the server.”
Always fun when Almas Baim shares one of his experiments with FXGL: “… and in this episode of how to inefficiently clear the screen …”
Ahmed Bakr completed a Tic Tac Toe Game with Tiva C and JavaFX: “Our primary goal in undertaking this project was to explore the integration of microcontrollers with high-powered processing computers to tackle tasks beyond the capabilities of a standalone microcontroller.”
WhiteWoodCity made his game demo and self-made game utilities fully open source on github.com/chengenzhao/fxcity.

Components, Libraries, Tools

Pedro Duque Vieira released a new library, a JavaFX theme called Transit Theme: “Modern look and feel, Zero tight coupling, Looks integrated on Windows, Also works well on other OSes, Light and Dark versions,…”

The announcement of this new Transit Theme got published on Foojay.io.
Pedro is also working on a dark mode: “JavaFX Windows are always shown in Light mode (window frames with light color). This new API I’ve created will allow the developer to set dark mode on a native window. New API will also allow other changes to a window.”
And he added a new API to FXComponents: “To allow you to change the native Window frame color, native Window text color, and border. (Standard JavaFX API will always show a native Window frame with the same light color with no possibility to change it.)”
The release of the new FXComponents library was also published on Foojay.

Dirk Lemmermann released version 3.0.0 of PDFViewFX: “This release is based on Apache PDFBox 3, which contains an impressive list of fixes and enhancements.”

Dirk has a friendly reminder: “When creating custom controls for your JavaFX project, please make sure you have a way to properly test them standalone (e.g. via FXSampler).”
He is also pimping the CalendarView control in GemsFX and adding all kinds of options: “E.g. different layout for the header and also quick picking months and years). Come and check it out, let me know what you think or I missed.”

JavaSuns came upon this great small pure Java library, SimplePNG, for storing JavaFX images to PNG files. Great compression ratios and file sizes achieved with the use of PNGJavaFXUtils class.
A new week, a new library by Pedro Duque Vieira: FXComponents. It contains a collection of new controls to be used in JavaFX applications.
WhiteWoodCity extended JavaFX, FXGL, and AtlantaFX to reduce function of binding, multiple game scenes support and navigation of them, enhanced animations, self-made theme,… Check the X thread, as he shared the code!
Johan Vos shared a link to the GitHub project of Rich Text Area: “One of the cool GluonHQ tools we are developing/maintaining”.
Carl Dea is prototyping a new JavaFX-based Dockable windowing library.
Sven Ruppert announced the release of version 4 of TestFX, simple and clean testing for JavaFX. Check GitHub for all changes.
Sean Phillips announced a new release of the special effects library LitFX: lightning, radio waves/bands, line of sight lighting and shadowing, animated window and floating panes, flame convolution.
Michael Paus has done a basic POC for Skia integration into JavaFX.

Tutorials

Mark Baird released the second in a series of blog posts showing how to use the beta release of the Java Maps SDK (with support for Arm Linux devices) with a Raspberry Pi to integrate IoT data collection into your geospatial applications.
Edward Nyirenda Jr explains how to add TextField autocompletion in JavaFX using ControlsFX: “TextField autocompletion is a convenient feature that enhances user experience by providing suggestions or predictions as users type into a text field.”

Check his Twitter/X timeline for more tutorials.
Highlighting one of the many other tutorials “JavaFX Clipboard”: “In the JavaFX framework, clipboard functionality is seamlessly integrated, making it easy for developers to provide a smooth and user-friendly experience.”
All Edward’s tutorials are available on his website coderscratchpad.com.

Gluon shared four new tutorial/screencasts on YouTube:

Introduction to Emoji
Introduction to Gluon Maps
Introducing Gluon Rich Text Area
Basic usage of Gluon Rich Text Area

Part 4 of the video tutorials in French by Jason Champagne: “On aborde les premiers contrôles utilisateur sur JavaFX” (First user controls in JavaFX).
Ken Kousen (“Tales from the jar side”) shared a video: “Generate images using Java. See how to write Java to drive the Dall-E image tool. Combined text blocks, JSON parsing, records, and even a JavaFX image carousel.”
Edward Nyirenda Jr is continuing his series of tutorials: Internationalization in JavaFX: Building Multilingual Apps: “Internationalization is the process of designing your application so that it can be easily adapted to different languages and regions without code changes.”
In Portuguese by Edivaldo Brito: “Como instalar o Gluon Scene Builder no Linux via Flatpak” (How to install Gluon Scene Builder on Linux via Flatpak).

Miscellaneous

Dirk Lemmermann noticed something remarkable: “A JavaScript account retweeting a JavaFX tweet? What’s next? Flying pigs? :-)”
Frederic Thevenet wrote a long thread on Mastodon to explain why “JavaFX is a very solid piece of tech which unfortunately came to maturity at the worst possible time for a “desktop application” GUI framework.”
Looking for a specific icon? Use JFX Central as Dirk Lemmermann explains here.
Happy to see more and more references to JavaFX when people discuss app development, like here by @t3chn01200 , here by @schramMedia and here by @Aman_Raj2241.
Oliver Kopp shared more info about the reason to use Java 21 in JabRef: “We needed to have the fix for a workaround of the 64kb limit of Java. We did not backport our fix to JDK20, but relied on a sufficient quality of JDK21 at the time of our release.” Check JDK-8240567 for more background info and a link to the merge request and code changes in OpenJDK.
WhiteWoodCity is combining JavaFX and JavaScript: “Using #Graal polyglot in a JavaFX program.”
Webswing, a specialized web server for running Java Swing and JavaFX based applications in a web browser, announced a Spanish version of their website.
From time to time, JavaFX (just like Java itself) is declared dead. Luckily, there are many fans to correct this mistake:

JavaFX3D: “As someone who worked on JavaFX at both Sun and Oracle, I can definitively say that JavaFX is not deprecated. Period.”
Jonathan Ellis: “Users hate Electron’s performance and memory footprint, but devs love it for write-once-run-anywhere. I know we stopped using Swing years ago for good reasons, but still: wouldn’t JavaFX be better than Electron?”
JavaFX3D: “I keep seeing uninformed posts, so I’d like to set the record straight. Kevin Rushforth and his team at Oracle are working on JavaFX. Equally importantly, Johan Vos and his team at Gluon are the JavaFX WORA magicians.”
Sean Phillips: “As the lead developer for several of the tools referenced in that article I can say as ground truth that JavaFX was selected as the superior tech stack due to a combination of quality, performance and cross-platform support.”
SystemsInCode: “I would love to leverage the benefits of JavaFX, but it’s a hard sell in enterprise when we need to push a critical fix… It’s a shame we have to use sub optimal tech for boring practical reasons Being able to FORCE latest version on people even with low rights is critical.”

Pedro Duque Vieira shared some hidden messages: “Hint: squint, move your phone/monitor further away or zoom out, to see it more clearly.”
Christopher Schnick believes JavaFX applications can always use some more Duke.

JFX Central

The JFX Central website is now reachable via both jfxcentral.com and jfx-central.com.
Many improvements are going on…
The post by Frank Delporte about the new version of JFX Central got republished on Foojay:

Part 1: Description of the site and changes.
Part 2: Interviews with some of the team members.

New content added to JFX Central

Library: FXComponents
Showcase: M-AID
Showcase: EasyCashier, a POS (point of sale) system from Sweden.

Is your library on JFX Central, or book, or website, or company, or …? Let the people know by adding a badge!
The initial data load of JFX Central is reduced by 50% thanks to JGit.
A new feature got announced that allows you to export any icon font icon to an SVG path so that you can use it in CSS, too.
Dirk Lemmermann is inviting all JavaFX developers to make their work visible on JFX Central: “In the end, you will have a nice personal profile page like this. A page showing your libs, your tools, your books, your videos, your blog, your showcase apps, etc…”
More content was added and bugs fixed and improvements integrated, go check it out on jfx-central.com

The post JavaFX Links of September 2023 appeared first on foojay.