Blog of Frank Delporte, Java Champion, Software Developer, Technical Writer, Nerd/Geek
JavaFX Links of May 2023
Again a busy month in JavaFX-world! Here is a nice list with links for your reading and clicking pleasure! This is the summary of the #LinksOfTheWeek as published on jfx-central.com in May 2023.
Interview with Paul Kocian aka OrangoMango
Some time ago on Twitter, I discovered @OrangoMango, who shared his progress in creating a 3D engine with JavaFX. The shared videos started with a Rubik’s cube in January ’23, over a basic tumbling car in February, to a full Minecraft-like world in April. Who is this @OrangoMango? And why did he take up the challenge to create a 3D engine with Java and JavaFX? Let’s find out…
JavaFX Links of April 2023
This is the summary of the #LinksOfTheWeek as published on jfx-central.com.
JavaFX Core
- Gluon announced JavaFX update releases: 20.0.1 (latest release), 17.0.7 (latest LTS), and for Gluon LTS customers 11.0.19.
- In this video with Kevin Rushforth he talks about JavaFX 20 and beyond.
- Dirk Lemmermann tweeted some of the highlights like RichTextArea, ideas for future releases,…
- The Notebook demo is looking really nice to learn JavaFX in an easy way.
Conferences
- As announced a few weeks ago, Sean Phillips was one of the keynote speakers at DevNexus in Atlanta. And his talk did not go unnoticed…
- Ixchel Ruiz: “Blowing the ceiling of technology, passion, visualization”
- Johan Vos: “Innovation by and for devs/humans. Great to see all of this coming together”
- Vincent Mayers: “It’s clear that JavaFX is AMAZING! Thank you GluonHQ and Johan Vos for all your work and support for this”
- And many more…
- The intro animation of his talk was shared on Reddit and shows the creators of the libraries used in his application as if they are trapped in the Matrix…
Building apps
- CodeDead shared a GitHub Actions workflow for the people that are using JDK 20, Gradle and JavaFX 20 on Reddit to test, build and package your JavaFX application on Windows, Linux and macOS when creating a pull request on either the main/master or development branches of your GIT project.
JavaFX Scene Builder
- Version 20 is about ready. Feel free to test the latest snapshots and report blocking issues.
- Chad Preisler shared a video on how to use GemsFX in Scene Builder.
Bumped to Java and JavaFX 20:
Regular guests
OrangoMango
- Found a performance problem in his 3D engine, thanks to Almas Baim and VisualVM.
- Added transparent blocks to his 3D engine.
- Is creating a chess game and shares the code on GitHub. You can play chess in LAN (Java sockets) and export a game to FEN and PGN.
Almas Baim
- Adding hex support for tiled .tmx maps to FXGL.
- Playing with a cat and PixelBuffer on April 1st.
- FXGL is also catching the Stable Diffusion train.
- Combining a black hole with a rasengan.
- Messing around with a TextArea and physics.
- Taking the term “physically based rendering” to a whole new level
- Shared a video showing a game with many subtle visual effects. Go fullscreen to see all details!
- And he is also trying to hypnotize you….
Gerrit Grunwald
- Created a PoincarePlots while being on a plane and added it to version 17.1.35 of his charts library.
Miscellaneous
- Tobias Briones is using math to draw flowers.
- And in an oher tweet it’s not a bird, not a cat: It’s the bird cat!
- Cédric Champeau is working on an astronomy toy project: a collection of libraries and applications for astronomy image processing in Java.
- Mariusz Materna announced a new version of LogViewFX, a desktop application that makes viewing logs easier.
- Artur Skowronski asked for RSS for this LinksOfTheWeek, and it will be available soon…
- CodeDead is rebuilding a .NET desktop application to improve the performance and make it cross-platform.
- Malik happily shared his first JavaFX application.
- Smith Ayo is creating an Oware game.
- Bruno Borges is looking into his crystal ball for 2024: “Oracle announces FxWeb, a framework for building WebAssembly UI with JavaFX, so you can code Java in both client and server side.”
- Christopher Schnick is enhancing the gameplay experience of Paradox Grand Strategy games with JavaFX through the Pdx-Unlimiter and releases it with JReleaser.
- Pedro Duque Vieira shared a testimonial of Fortune 500 company choosing for Java and JavaFX (place 171) with headquarters in New York, a world leader in its sector.
- On Reddit a video with 2D and 3D Pacman was published.
- siedlerchr shared a link to an excellent article explaining the concepts of Bindings, it’s from 2020 but still very valid.
- Jeannot Muller wrote about “JavaFX or Swing in 2023”.
About jfx-central.com
- New content: X-Pipe: a flexible connection manager and remote file explorer.
- Coding for version 2 of the jfx-central has started, check the Twitter thread if you want to join the development team.
Interview by Bazlur Rahman: Unlocking Java Secrets with Frank Delporte - Insights, Stories, and Tips for Success
On Foojay.io, Bazlur Rahman is publishing a series of interviews with various people from the OpenJDK community. I had the honor to be included in this series, and this is a repost.
Using the Raspberry Pi Autofocus Camera Module 3 as HDMI camera
More than two years ago, I blogged about the use of the Raspberry Pi as an HDMI camera for the ATEM Mini. Although I have been using such a camera since then as my main Zoom camera, I wasn’t always happy with the image quality. The main problem was that the previous Raspberry Pi cameras had a fixed focus and it was quite hard to find the perfect focus.
JavaFX Links of March 2023
This is the summary of the #LinksOfTheWeek as published on jfx-central.com.
JavaFX Core
- Johan Vos is working on backports for JavaFX 17.0.7 to guarantee quality and long-term support.
- And he announced JavaFX 20 could be released in the week of March 20th. As planned.
- Together with the release of OpenJDK 20, we also got the release of OpenJFX 20. Both right on schedule, as always!
- Announcement by Gluon.
- Downloads are also provided via OpenJDK on jdk.java.net.
- Important message in the release notes: “JavaFX 20 is compiled with –release 17 and thus requires JDK 17 or later in order to run. If you attempt to run with an older JDK, the Java launcher will exit with an error message indicating that the javafx.base module cannot be read.”
- Most important highlight for Johan Vos: “apps created many years ago still run on the latest JavaFX with latest OS. That is far from trivial, require lots of work, and not very common in client frameworks.”
- And another quote from Johan: “I remember people and companies telling me 5 years ago they love Java and JavaFX, but they were pretty sure JavaFX would not be around in 2 years from them. So they used other client technologies… which don’t exist anymore today… while JavaFX… keeps moving forward. With less hype, and less marketing power than other client frameworks, but with dedication and focus on quality, stability and community. And with tons of stuff todo, I 100% realize that.”
- You can already start experimenting with JavaFX 21 Early-Access Builds!
- A request by Raumzeitfalle: “If you like Java and JavaFX, give Scene Builder Leadinge Edge a try. Its latest version runs with Java 20 using JavaFX 20 and it combines many of the pending PRs so that one can test the functionality. Feel free to share your feedback on Github.”
JavaFX and Game Development
- 17.0.13 of JArkanoid by Gerrit Grunwald adds the ability to shoot enemies.
- He describes in a Foojay post how to turn an existing application to an iPhone app.
- And he started with a new game, as you can see in this first screenshot of loderunner.
- He shared the first version of a Tetris clone.
- This is a screenshot.
- You can play it online, thanks to WebFX.
- Markus Eisele shared a link to the GitHub project of pacman-javafx: a JavaFX UI (2D+3D) for Pac-Man / Ms. Pac-Man, a project by Armin Reichert.
- Another Minecraft-like world, in the self-made 3D engine of OrangoMango.
- It got extended with more Minecraft-like functions: block breaking/placing, terrain generation, chunk system, and overall performance improvements.
- He added some new block types and fixed some issues with block breaking/placing in his Minecraft-like world, and now has a small home made out of wood and coal blocks.
- It also has Minecraft-like trees.
- Sean Phillips - being a JavaFX 3D expert - finds his work awesome.
- WhiteWoodCity shared a video with the combination of 2D and 3D game sub scenes.
- Another video of a rougelike game prototype.
- And shared how he created a pseudo 3D effect like Street of Rage, Dragon’s Crown with two GameSubScene and two entities of each GameWorld, and binding their properties with very clean and neat code.
- His game got bumped to Graal and Java 20. Yes, indeed, already before the official release of Java 20!
- And shared how he created a dynamic shadow effect of a jump action with a Shape and Binding in less than 40 lines of code.
- Almas Baim has been very active on this month…
- He discovered another FXGL game: “The Last Cowboy Game - UTFPR”.
- And he shared a screenshot showing FXGL is available in IntelliJIDEA when creating a new JavaFX project.
- Announcing version 17.3 of FXGL: improve A* performance, isometric support for .tmx, 3D updates (lookAt, direction, rotation, .obj models), propertyMap convenience API.
- Pathfinding solution added to FXGL that outperforms the existing one by up to 80%, by replacing ArrayList with HashSet in critical code.
- Another video with the FXGL engine pathfinding in action. This demo shows large red areas that are not passable, while dynamic entities are ignored and can be passed through.
- Video showing physics sandboxes are never not fun! You can now pick up any entity as seen in this sample.
- Video of text animations with particles.
- Video with particles, one as “lead”, and other particles following with min and max distance, ensuring all particles are connected while the lead moves.
- Isometric tile support in FXGL has had significant interest over the years. The maths looks straightforward but the architecture, as per usual, will need some careful pondering.
- Screenshot of initial progress towards having first-class support for isometric levels in FXGL.
- Video showing the new sliders in FXGL.
- He is throwing grenades….
JavaFX in Science
- Fabrice Jossinet shared an impressive preview video of a new tool to visualize the folding pathways of an RNA during its transcription. Pathways are computed with a Rust algorithm. Visualization and GUI are made with Kotlin, JavaFX and his rnartistcore library.
- RNArtist shared again an impressive video showing RNA visualization with JavaFX.
- “In RNAStudio, you can animate the transcription process along one of the computed folding pathways. When a new helix pops, it is first highlighted then added to the 2D. You can stop/restart the animation, go backwards/forwards.”
Miscellaneous
- jdeploy by Steve Hannah now produces signed apps for Windows installers. This should make Windows Defender more pleasant to be around.
- Dirk Lemmermann has also been very active…
- TableView replacement based on GridPane. No virtualisation. Very useful for small datasets. Will be added to GemsFX very soon.
- Screenshot of an answer on GitHub explaining there is only one codebase for jfxcentral website and desktop app, thanks to @jpro_one.
- The TimePicker in GemsFX has been improved by @cpreisler. It can now also display and edit seconds and milliseconds.
- He’s looking back at something he implemented almost 20 years ago with Java 5 and Swing, and it still works perfectly nowadays with Java 19 … just a whole lot faster!
- He showed a custom tooltip implementation for charts. The tooltips show the values of all y-values for the same x-value whenever the mouse cursor hovers over one of the data points.
- In a comment tweet, he shows code to illustrate that each data point in a JavaFX chart is also a node that allows us to integrate such a feature.
- Read the comments to learn pro/contra of this approach and alternatives for large datasets.
- He added a YearMonthPicker control to GemsFX. It’s included in version 1.67.0.
- It was the result of a deep-dive into how to customize a ComboBox.
- Fahim Bin Amin shows in a 1,5h video how to create your own full-fledged project from scratch using JavaFX and Maven.
- Robert Ladstätter shared exciting news. LogoRRR is now officially available on the Apple Store!
- 工房奥谷 shared a video showing a 3D-CAD application to fit clothing patterns.
- Juanan shared an example to learn how to use a REST API in Java with a JavaFX Pokemon viewer. He added links to multiple videos demonstrating the code. Sources are available on GitHub.
- JavaFX 3D is asking who wants to contribute an importer for FBX or USDZ or GLB / glTF to FXyz. It already has 3D model importers for OBJ and Maya.
- He already found a starting point in an existing java project.
- Jakob Jenkov and Andres Almiray are talking about packaging a JavaFX app with JReleaser.
- MhamadHarmush shared Java and JavaFX tutorials in Arabic.
- WhiteWoodCity shared a screenshots of NotificationFX.
- JavaFX3D shared an article about 3DViewer by ChrisNahr
- JavaFX at DevNexus in Atlanta (4-6 April):
- Gail Anderson and Paul Anderson: “Modern Java with JavaFX for Rich Client UIs”.
- Sean Phillips: “Harnessing the Hyper-dimensional Mind: Visualizing Brain-Computer Interfaces”.
- Juanan Pereira published a new video for his Software Engineering class: How to display custom items in JavaFX ListView
- Andres Almiray updated the JavaFX plasma application to reflect changes brought by JReleaser 1.5.1, along with instructions for building.
- Robert Ladstätter wrote a blog post about LogoRRR’s journey to the Apple App Store using JPackage.
- Matt Coley has a long Twitter thread about new the Recaf UI JavaFX work, starting with a ‘please wait while the decompiler runs’ animation that pulls hex dumps from the class being decompiled, and many more each with a video.
- Steve Hannah shared a GitHub action to generate native installers for Java desktop apps.
- SmartFinder by Serendipity version 1.7.3 now runs with JavaFX 20! It’s a Desktop Search Tool APP fully developed with Java and JavaFX technology.
- Dirk Lemmermann again shared a lot of JavaFX library and other info:
- “If any of you work on planning and scheduling applications I can highly recommend #FlexGanttFX for visualizing plans / schedules. Yes, it is a commercial library.”
- “If your JavaFX application requires an on-screen keyboard, you might wanna check out KeyboardFX.”
- A screenshot of the new market data portal he is creating, running in a browser.
- The new calendar view in GemsFX now also supports “date range” selection (and single date, multiple dates selection).
- Thanks to Florian Kirmaier, GemsFX has been extended with a great utility class for synchronous scrolling of two VirtualFlow instances.
- And he’s worried about his job as “ChatGPT “generates” a JavaFX app based on requirements”. That’s probably thanks to the stability of the API over the last years!
Hidden Beauties of Java Enums
Let’s take a look at the power and beauty of what Java Enums can provide…
How to Share Your Work With a Movie or Podcast
If you are blogging about your work, at some point, you’ll want to share your experience with a movie or in a podcast. In this post, I want to share the tools I’m using and give some advise to get you started with a small (or bigger) budget…
Book review - Practical Design Patterns for Java Developers
Hone your software design skills by implementing popular design patterns in Java
This book is for sale on Amazon in Kindle and Paperback editions.
JavaFX Links of February 2023
February is a short month, but this list seems to be longer than ever… A lot of game development, releases, interesting ongoing development, and so much more to read. Enjoy reading and clicking!