Tagged "Java"

Devoxx BE, links of the talk Looking at Music, an experiment with Kotlin, JavaFX, MIDI, and Virtual Threads

These are the links of the presentation “Looking at Music, an experiment with Kotlin, JavaFX, MIDI, and Virtual Threads” of Wednesday October 9th, 16:40-17:30, Room 7.

Template project to build a JavaFX application as a JAR with dependencies with Maven

Recently, I was asked what the best way is to build a Fat JAR (a JAR with all dependencies) using Maven. Therefore, I created a GitHub project javafx-jar-template that you can use as a starting point. It contains a small JavaFX demo application with the TilesFX dependency and the necessary plugins in the pom.xml file.

JavaFX In Action #7 with Christoph Schwentker about JabRef

Here is the next “JFX In Action” with Christoph Schwentker about JabRef, a tool written in Java and JavaFX to collect, organize, and discover literature for research projects.

JavaFX Links of September 2024

Here is the overview of the JavaFX LinksOfTheMonth of September 2024, published on jfx-central.com during this month. Did we miss anything? Is there anything you want to have included in one of the next overviews? Let us know via links@jfx-central.com.

Deep dive into bits, bytes, shorts, ints, longs, signed, and unsigned with Java

On the Pi4J discussion list, someone recently asked what the best and easiest way is in Java to convert a byte value. In Java, there is no distinction between signed and unsigned bytes, which can be confusing. My book “Getting Started with Java on the Raspberry Pi” contains an explanation about this, and I am happy to share it in this post with some more info and code examples…

JavaFX In Action #6 with Ramiro Domínguez Ayub about the Televic Generic Update Tool (TGUT)

In the next “JFX In Action”, I’m returning to Televic, one of my former employers, to talk to Ramiro Domínguez Ayub. He explains how they create a tool with JavaFX that is used both internally and by their customers to update a lot of different types of devices on a train, tram, and/or metro.

JavaFX with Kotlin versus Java

Recently I have been experimenting with the combination of JavaFX and Kotlin. As Kotlin also runs on the Java Virtual Machine (JVM) and is a very close sister of Java, the switch is straightforward. I’m not making full use of what Kotlin can offer (non-blocking coroutines for example) as this is still a learning path for me… But I want to show you in this tutorial the difference in code style.

JavaFX In Action #5 with Maciej Gorywoda about FxCalculator, an Android app built with Scala and JavaFX

In the next video in this “JFX In Action” series, I talked with Maciej Gorywoda about FxCalculator, an Android app created with Scala and JavaFX you can find in Google Play.

How we almost missed a plane in Kazakhstan, but OpenJDK could have saved us...

In August, our family vacation brought us to Kazakhstan. An important trip, as it is the birth country of our (now) 14y son. It was over 13 years that we had been there and we planned to go back earlier, but some stupid virus messed up everyones life a few years ago… So finally, early this year, we decided to start organizing our trip. Or to be fully honest, we asked Ardjan of “Kazachstan Reizen” to do that for you. And we had an amazing trip, visited different cities and national parks, and had a fantastic time.

First experiments with Raspberry Pi Compute Module 4

I’m one of those people with boxes full of devices, waiting to be used in experiments… And from time to time, I dive into those boxes to fill in the gaps in between other tasks. So these are the results of my first Raspberry Pi Compute Module experiments!

JavaFX Links of August 2024

Here is the overview of the JavaFX LinksOfTheMonth of August 2024, published on jfx-central.com during this month. Did we miss anything? Is there anything you want to have included in one of the next overviews? Let us know via links@jfx-central.com.

JavaFX Links of July 2024

Here is the overview of the JavaFX LinksOfTheMonth of July 2024, published on jfx-central.com during this month.

JavaFX Nodes versus Canvas

Last week I was working on a blog post about Azul Zulu with JavaFX support for ARM systems, like the Raspberry Pi. As you can see in this video, I found out my little test application with a lot of “bouncing balls” started losing performance on the Raspberry Pi with more than 1000 of those balls.

JavaFX Links of June 2024

Here is the overview of the JavaFX LinksOfTheMonth of June 2024, published on jfx-central.com during this month.

JavaFX In Action #4 with Robert Ladstätter about LogoRRR, a cross-platform log analysis tool

In the next video in this “JFX In Action” series, I talked with Robert Ladstätter about LogoRRR, an application written with Scala and JavaFX.

Links of the BeJUG Presentation: Lessons Learned from #JavaOnRaspberryPi

These are all the links of my presentation at BeJUG in Waregem, Monday, July 24, 2024.

JavaFX In Action #3 with Christopher Schnick about XPipe, an app to manage all your servers

In the next video in this “JFX In Action” series, I talked with Christopher Schnick about XPipe.

JavaFX In Action #2 with Daniel Zimmermann about JavaFX and Kotlin

For the second video in this “JFX In Action” series, I talked to Daniel Zimmermann. He got my attention when he recently tweeted: “To your dismay I have to tell you I write all my desktop applications using Kotlin and JavaFX”. Why is he a big Kotlin AND JavaFX fan? I asked him and got a demo of the network test application that he is working on.

JavaFX In Action #1 with Pedro Duque Vieira, aka Duke about Hero, PDFSam, FXThemes, FXComponents,...

People who follow me, know I have a big love for JavaFX. It’s my go-to for every desktop user interface application I build. I love the simplicity of quickly creating an app that makes full use of the “Java powers” to build both multi-threaded “backend services” combined with a beautiful-looking UI into one executable. I’m starting a new video series “JFX In Action” in which I talk to developers to show the world what is being developed with JavaFX.

JavaFX Links of May 2024

Here is the overview of the JavaFX LinksOfTheMonth of May 2024, published on jfx-central.com during this month.

Book review - Frontend Development with JavaFX and Kotlin

For a personal pet project, I started experimenting with JavaFX and Kotlin to create a user interface with a lot of Java / Kotlin background processing. As I knew there is a book available on this specific topic, Apress was so kind to send me a review copy of Frontend Development with JavaFX and Kotlin: Build State-of-the-Art Kotlin GUI Applications by Peter Späth (152 pages, 48€ on paper, 35.5€ for ebook on Amazon.nl).

JavaFX Links of April 2024

Here is the overview of the JavaFX LinksOfTheMonth of April 2024, published on jfx-central.com during this month.

JavaFX Links of March 2024

Here is the overview of the JavaFX LinksOfTheMonth of March 2024, published on jfx-central.com during this month.

Example Java Application with Embedded Jetty and a htmx Website

I was experimenting with a Java application that can act as a web server and includes the user interface HTML-files that get modified with htmx, to replace certain parts of the HTML with other ones created in Java. I found it pretty hard to understand how to configure the embedded Jetty webserver, but as always with Java libraries, it’s pretty easy once you understand how to do it ;-) I decided to share my example, so you don’t need to go through the same search if you want to use the same approach…

Search in Documentation with a JavaFX ChatGPT-like LangChain4j Application

At the Fosdem conference in Brussels on February 3rd, I gave a presentation about using an existing documentation set as the data for a ChatGPT-like application, created with JavaFX and LangChain4J. The video and links of that presentation are available here, and this post is a more detailed explanation of that application.

JavaFX Links of February 2024

Here is the overview of the JavaFX LinksOfTheMonth of February 2024 that got published on jfx-central.com during this month.

Links of the Presentation: Experimenting with AI and LLM to make docs searchable through a chat application

These are all the links of my presentation at the Fosdem Conference in Brussels, Saturday, February 3th, 2024, 17:40 CET.

Links of the Presentation: What I Learned About OpenJDK As a Docs Writer

These are all the links of my presentation at the JChampions Conference, Monday January 29, 2024, 16:00 CET.

JavaFX Links of January 2024

This is the first JavaFX LinksOfTheMonth review for 2024, an overview of the LinksOfTheWeek that got published on jfx-central.com during January.

JavaFX Links of December 2023

This is the final JavaFX LinksOfTheMonth review for 2023. It was an amazing year with many evolutions in Java and JavaFX and a complete “fresh” version of JFX Central. Thanks for following these updates and looking forward to more of your JavaFX work in the new year…

Interviews at the J-Fall 2023 Conference

I had a lot of interesting talks with Java experts since I started producing the Foojay Podcast. But when I asked the organizers of the J-Fall conference, if I could do some kind of live broadcast at their event, I hadn’t imagined it would be such an amazing experience! During the day I had 29 interviews, which I all broadcasted live on multiple websites (YouTube, LinkedIn, and Twitter) with the amazing restream system.

A JavaFX Game Application in a Single Java File with JBang and FXGL

FXGL is a framework to easily create JavaFX-based game applications. In this blog post, I want to show you how this can be done within a single Java-file which doesn’t need a full Maven or Gradle project but can be executed directly with JBang without compilation. This approach can be used as an easy way to get new Java(FX) developers started or create your first experiments with FXGL.

Book review - Modern frontends with htmx

People who follow me, probably know I have a big love for user interface development with JavaFX (for desktop), and Vaadin (for browser). But as always, there are different solutions for every challenge, and building a web user interface with Java can be done with other frameworks. htmx seems to be one of those hot new rising stars, and I already wanted to dive deeper into it, but didn’t find the time yet. Luckily, Wim Deblauwe is here now to help me!

JavaFX Links of November 2023

Have fun with this overview of the “JavaFX LinksOfTheWeek” that got published on jfx-central.com during November.

JavaFX Links of October 2023

Thanks to the Devoxx conference, there are many hours you can spend on JavaFX-related videos! But as every month, there is a lot more to read and learn about JavaFX… Have fun with this overview of the “JavaFX LinksOfTheWeek” that got published on jfx-central.com during October.

Running a CRaC Java application on Raspberry Pi - UPDATE

On July 15th of 2023, I published a post here about my initial experiments with CRaC on the Raspberry Pi. At that time, I found out that both the Linux kernel in Raspberry Pi OS and the Zulu Build of OpenJDK still needed some changes to work on the Raspberry Pi. I created a ticket in the Linux kernel project, which was solved by Phil Elwell. Last week, a new version of the Raspberry Pi OS, based on Debian Bookworm, was released. And in september, version 21 of OpenJDK was released and the Zulu Build of it, includes CRaC. So let’s see if we can use CRaC without issues, if we bring all this togheter.

Controlling LED strips with Java

One of the most “fancy” electronic components is definitely a LED strip. It’s really cool to control a long strip of lights with only a few lines of code… But, there is a problem. The timing of the signals is crucial to reliably control these strips. Both Python and Java on a Raspberry Pi can struggle with these timings as they are running on Linux, a non-real-time operating system. So, for instance, pauses in the garbage collection of the Java virtual machine, or any glitch in the operating system can cause unexpected effects on the LED strips. That’s why in most projects, a microcontroller (Arduino, Raspberry Pi Pico, ESP32,…) is used to drive the LED strip. In my search for a good solution to use LED strips with Java, I stumbled on the Pixelblaze Output Expander. This small device is controlled through a serial interface, and handles the control of the LED strip. As it turns out, this is a perfect solution to offload the timing-critical operations from the Raspberry Pi and have reliable output on a LED strip.

Links of the Presentation: Unlocking the Potential of Bits and Bytes

These are all the links of my presentation at Devoxx Belgium, Wednesday 12:00-12:50, Room 7.

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.

Java 21 - JEP 445 - Unnamed Classes and Instance Main Methods

Java 21, released on September 19th, 2023, brings many new features, 8 which are fully integrated and 7 which are incubator or preview. In this post I want to highlight one of those preview features: Java Enhancement Proposal (JEP) 445: “Unnamed Classes and Instance Main Methods”. It’s a preview feature, meaning you need extra flags to use it. The goal of this JEP 445 is to make it easier to get started with Java, as it’s all about reducing the number of keywords when you write, for instance, your very first HelloWorld Java code. It’s ideal for students or anyone who wants to start experimenting with Java. It may also help make Java more popular in boot camps, where JavaScript and Python dominate now.

New User Interface for JFX Central, the Home for All JavaFX Information

Just like Foojay wants to be the starting place for all info related to Java, JFX Central is the place to be for all JavaFX info. The website is a project started by Dirk Lemmermann and has been online since 2021. The team has expanded since then, and the content has been extended, partially by the team, but also thanks to many contributors from the JavaFX community. End of August, a new user interface has been published to replace the initial version.

JavaFX Links of August 2023

I’ve taken a holiday this month, so probably missed a lot of the amazing JavaFX news, but still some things caught my attention and you can find them in this LinksOfTheMonth overview.

Pi4J Operating System for Raspberry Pi

Yes, the Raspberry Pi Operating System is awesome! But the Pi4J project made it if even more awesome by adding “goodies” for Java developers! Pi4J OS is not yet another OS, but the official Raspberry Pi OS, with additional tools and preconfigurations to make it the ideal OS for any Java and JavaFX developer who wants to use a Raspberry Pi.

JavaFX Links of July 2023

Although I skipped a few weeks because of busy schedules, holiday interruptions, and too few hours in a day, there was still a lot to report in the two #LinksOfTheWeek that were published on jfx-central.com in July.

Reading the temperature, humidity, and pressure from a BME280 Sensor with Java, Pi4J, I2C, SPI, and JBang

To make it as easy as possible to get started with Java on the Raspberry Pi to interact with electronic components, I started a new section on the Pi4J website with JBang examples.

JavaFX Links of June 2023

Again a lot has been shared this month in the jfx-central.com #LinksOfTheWeek! And that website itself is “under heavy construction” as version 2 is getting a completely new design and several improvements. Your help is wanted! See the last section of this summary…

Running a CRaC Java application on Raspberry Pi

With the April release of the Zulu Build of OpenJDK, Azul announced the integration of CRaC in its version 17 of Java for Linux. Coordinated Restore at Checkpoint (CRaC) is a feature introduced in OpenJDK to improve Java’s application startup and warmup times to milliseconds from seconds or even minutes, by allowing a running application to pause, snapshot its state, and restart later, even on a different machine.

One Year as a Technical Writer at Azul: A Journey of Growth and Learning.

Writing has always been my passion, and even in my previous jobs as a developer, I stood out as the one who enjoyed creating and maintaining documentation. But June 9th, 2023, marked my first birthday as a full-time technical writer at Azul. Yes, it’s already a year ago that I changed from being a developer-who-also-writes to a writer-who-also-develops. Let’s take a moment to reflect on my incredible journey over the past year.

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

Conferences

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

Bumped to Java and JavaFX 20:

Regular guests

OrangoMango

Almas Baim

Gerrit Grunwald

Miscellaneous

About jfx-central.com

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.

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.
  • 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

JavaFX in Science

Miscellaneous

Hidden Beauties of Java Enums

Let’s take a look at the power and beauty of what Java Enums can provide…

Book review - Practical Design Patterns for Java Developers

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!

JavaFX Links of January 2023

2023 has taken off with a flying start in JavaFX-world!

Here is a summary of the Links Of The Week that were published in January on jfx-central.com.

New Section Added to Foojay.io: Java Quick Start

Foojay.io aims to be the starting point for “all-things OpenJDK,” but during one of my morning walks the idea struck me that this site really needs complete beginner materials, too.

JavaFX Links of December 2022

If anyone needs a reminder Java and JavaFX are “alive and kicking”, you can not only check out jfx-central.com, but also the list below.

HiveMQ Cloud, part 4 - Sending sensor data from Raspberry Pi Pico W to HiveMQ Cloud

Exactly one year ago, in December 2021, I published three articles of MQTT messaging with Raspberry Pi, Raspberry Pi Pico and HiveMQ Cloud. On June 30th of 2022, Raspberry Pi released a new product, that is the subject of this post: the Pico W. Yes, a new version of the original Pico, but with Wi-Fi. The new board is for sale for 6$, compared to the 4$ of the original Pico.

Schedule your holiday for 2038

The end of the year is approaching, so it’s time to start scheduling your holidays for the next year. But I decided to go a step further and already planned those for 2038! Why? Well, a few weeks ago I gave a presentation to students, when I realized they had no idea what I was talking about when mentioning the Y2K-problem. Most of them weren’t even born yet in the year 2000! I also realized at that moment that I’m probably becoming a grumpy old man, but that’s a subject for another post… ;-) But I also found out a new similar problem is approaching in … 2038!

JavaFX Links of November 2022

Time flies when having fun…

So here we are again, another month has passed and this is a summary of the Links Of The Week that were published on jfx-central.com during November.

Shopping list for JavaOnRaspberryPi

After my talk at J-Fall I got the question what is required to get started with #JavaOnRaspberryPi. In my book I list the components that are used, but indeed a short overview was missing (it’s now added to the ebook…). So here we go:

JavaFX Links of October 2022

When I (re)started the JavaFX Links Of The Week on jfx-central.com in September, I was wondering if there would be enough material to share every week.

Book review - Learn JavaFX Game and App Development with FXGL 17

This summer I read the book “Entreprenerd” by Bruno Lowagie. It tells the story of how he started with the iText PDF Java library and turned that into a company together with his wife, and eventually sold it with all problems related to most sales and acquisitions trajects… In “Entreprenerd”, he also describes the process of writing two books about the iText library itself, as there were no good manuals available and he wanted to liberate himself from the ever-returning same questions. When I received this book about FXGL, I immediately had to think back to the story of Bruno. Who better to write a book about a library than Almas, the creator himself?

Devoxx Belgium and J-Fall The Netherlands - Links

Links used in my talks at Devoxx 2022 (Antwerp, Belgium) and J-Fall (Ede, The Netherlands).

JavaFX Links of September 2022

The JavaFX links of the week are back on jfx-central.com, and here we collect the complete month for you in an excellent overview.

Create Music Bingo cards with iText

It has been a while since I last had to create documents in a program, and iText has been “on my radar” to try out for a while now. This weekend we had a party and wanted to organize a music bingo. For this, we needed a set of randomly selected songs to be printed out per person. A small Java project seemed to be the best solution, otherwise, this would have been a boring, manual, and repetitive task. Isn’t that the goal of most of our developments? “Automate the boring stuff!”

Blink a LED and read a button state with Vaadin, Spring and Pi4J on a Raspberry Pi

As I’m becoming a senior developer in terms of age, I’ve transitioned from one language to another. One of my main interests has always been clean, easy-to-understand UIs (User Interface). That journey started for me with Director (to create multimedia CD-ROMs), Flash website animation, and Flex Rich Internet Applications (= “Flash on steroids”). When I started developing with Java over 10 years ago, we had some projects with the early versions of Vaadin and JavaFX. As I went on with serverside applications, I only continued with JavaFX for some personal and side projects, and loved the way you can create a UI both with XML (FXML actually) and code, exactly the same approach I loved with Flex. Since then, my love for Java and JavaFX only grew and it’s still my major programming environment.

Installing Java with SDKMAN on Raspberry Pi

If you create a new SD card for a Raspberry Pi with the operating system, you can choose the “Raspberry Pi OS Full (32-bit)” edition, which includes Java 11. But a lot of the other available OS-versions don’t have Java included.

Starting a new JavaFX projeect in IntelliJ IDEA

On the OpenJFX website you can find a lot of getting started documentation. But as one image/video says more than a thousand words, I created this short movie to show you that creating a new JavaFX project is just a matter of a few clicks with the JetBrains IntelliJ IDEA.

HiveMQ Cloud, part 3 - Sending sensor data from Raspberry Pi Pico to HiveMQ Cloud

In the previous two posts in this series, we used Java on the Raspberry Pi mini-computer to send sensor data to HiveMQ Cloud, and visualize it on a dashboard.

HiveMQ Cloud, part 2 - Using MQTT and Raspberry Pi to Visualize Sensor Data on a TilesFX Dashboard

In the previous post we started our discovery of HiveMQ Cloud with Java on the Raspberry Pi. We created an application to send measurements of various sensors to the HiveMQ Cloud MQTT broker. Using an online websocket client we verified the transition of the messages, and could see the data being published to this online message queue.

HiveMQ Cloud, part 1 - MQTT on Raspberry Pi, Send Sensor Data to HiveMQ Cloud with Java and Pi4J

A few years ago I did my first experiments with an MQTT server (Mosquitto) running on a Raspberry Pi to connect an Arduino and Raspberry Pi for the drumbooth of my son. The full process is described in my book “Getting Started with Java on the Raspberry Pi”.

JavaFX running in kiosk mode on the Raspberry Pi

The Raspberry Pi in combination with an inexpensive touch screen, makes a perfect controller for a machine or game console. Let’s see how we can use Java and JavaFX to build a test application which also communicates with the pins of the Raspberry Pi to control a LED. We have done something before already in the post “Light Up your Christmas Tree with Java and Raspberry Pi”, so what’s new?

Device monitoring tool with JavaFX, FXGL and Mosquitto

In a previous post “Getting Started with FXGL Game Development” we already have taken a look at the FXGL game development framework developed by Almas Baimagambetov.

JVM Advent 2020 - Light up your Christmas lights with Java and Raspberry Pi

Are you a serious Java-developer looking for a fun project? Or want to learn something completely new and use your Java-knowledge to control electronic components? Here we go with this small project to get you introduced to the world of electronics programming!

JFXDays presentation - Having fun with Java and JavaFX on the Raspberry Pi

Today I could give my talk “Having fun with Java and JavaFX on the Raspberry Pi” at the JFXDays. Normally this event takes place in Zurich, but this year also went virtual because… well because of 2020…

Building native applications for all PC and mobile platforms from a single JavaFX project with Gluon Mobile and GitHub Actions

The post “Starting a JavaFX Project with Gluon Tools” shows you how to start a Gluon Mobile Multiview project with a few clicks in IntelliJ IDEA thanks to the “Gluon plugin”.

Starting a JavaFX Project with Gluon Tools

On foojay.io you can already find two posts by Carl Dea to get you started with JavaFX:

Devoxx Ukraine presentation - Having fun with Java and JavaFX on the Raspberry Pi

Today I had my first Devoxx talk, after my Java virtual talk a few weeks ago at the “Oracle Groundbreakers APAC Virtual Tour 2020” conference (21/10)! The event in Ukraine also went virtual which gave me the opportunity to share my love for Java, JavaFX and the Raspberry Pi again.

OpenJDK versus OpenJFX Release Cycles

Confused about the release cycles of OpenJDK and OpenJFX and the relationship between them? Read on!

JavaFX 3D - A Look Back Through History & Some Experiments

After my virtual conference talk “Java and JavaFX on the Raspberry Pi” at the “Oracle Groundbreakers APAC Virtual Tour 2020”, I got in touch with some people who were working on JavaFX 3D in the past, and were curious how that would behave on the Raspberry Pi.

APACOUC presentation - Java and JavaFX on the Raspberry Pi

Today I had the honor to speak at the “Oracle Groundbreakers APAC Virtual Tour 2020” conference. And of course the title of my talk was “Java and JavaFX on the Raspberry Pi”.

Building OpenJDK on Raspberry Pi

The OpenJDK sources are now fully available and developed on GitHub as a result of Project Skara. Thanks to a lot of work done by the community, the full Java development flow has been migrated to GitHub while keeping the repository history. This process has been described on the GitHub blog.

Visual Studio Code on the Raspberry Pi (with 32 and 64-bit OS)

In my book “Getting Started with Java on the Raspberry Pi”, I give more info about IDEs (= Integrated Development Environment) for Java development. My prefered ones are JetBrains IntelliJ IDEA and Microsoft Visual Studio Code (VSC).

Using Pi4j (V1) on the Raspberry Pi 4

A topic which comes up from time to time in questions related to Java and the Raspberry Pi, is the support of the 4th version of this board in combination with Pi4J, “the friendly object-oriented I/O API and implementation library for Java programmers to access the full I/O capabilities of the Raspberry Pi “.

64-bit Raspberry Pi OS on Raspberry Pi 4 with USB BOOT

A micro SD card is the default way to add an operating system to the Raspberry Pi. But there is an alternative you need to consider if you want to make your system more reliable. SD cards are not super fast and can get corrupted when you are writing a lot to disc.

Spectacular Java projects on Raspberry Pi

Thanks to Twitter and LinkedIn I got into contact with several developers who are doing Java stuff on Raspberry Pi and I want to share those projects with you as they can be an inspiration for all of us to get started with Java development on the Raspberry Pi.

Azul Zulu OpenJDK 15 on Raspberry Pi

For this post I did some experiments with Java 15, reusing the Ubuntu 64bit SD card which was also used for the earlier post “Comparing a REST H2 Spring versus Quarkus application on Raspberry Pi”.

Why you should learn to program on the Raspberry Pi

In this article “Java vs Python - Which Programming Language Should Programmer Learn First?” by Javin Paul, you can find a comparison between the two most popular programming languages. Of course, as being a Java-developer myself, it’s not a mystery which I would prefer ;-)

How to install and use Java 11 and JavaFX 11 on Raspberry Pi boards with ARMv6 processor

In a previous post “Installing Java and JavaFX on the Raspberry Pi”, you can read how to install BellSoft LibericaJDK to be able to run JavaFX applications with a graphical user interface on a Raspberry Pi with ARMv7 or ARMv8 processor.

Comparing a REST H2 Spring versus Quarkus application on Raspberry Pi

Goal of this comparison

In my previous post “A Spring REST and H2 database application on the Raspberry Pi” an example was described to store sensors and measurements in a H2-database through REST API’s with a Spring application on the Raspberry Pi. This application takes some time to start on a Raspberry Pi, and Adam Bien who makes the airhacks.fm podcast asked me if I could compare this to a similar Quarkus application.

A Spring REST and H2 database application on the Raspberry Pi

Java on Raspberry Pi

The “Pi” in the name of the Raspberry Pi refers to Python, but as a Java developer I love to know and experiment with the various Java frameworks I also use at work. Spring is the main one, and I wanted to develop a proof-of-concept application which provides REST API’s to store and retrieve sensor data with a database back-end on the Raspberry Pi.

Joining the Pi4J team

In my book “Getting Started with Java on Raspberry Pi” I dedicated a chapter on Pi4J, the leading framework to combine the power of Java with the hardware capabilities of the Raspberry Pi. This project which was started in 2012 by Robert Savage, evolved during the years to be able to support all the different Raspberry Pi-versions and many types of hardware components.

The MagPi step-by-step video

In “The MagPi Magazine” #93 and #94, published by the Raspberry Pi Foundation, you can find two articles which describe how you can get started with Java, Maven, Visual Studio Code and Pi4J on the Raspberry Pi.

Getting started with FXGL game development

FXGL is a Java, JavaFX and Kotlin Game Library (Engine) made by Almas Baimagambetov. As my son (almost 10y) challenged me to make a game during my “Corona-stay-at-home-time”, I had the luck Almas provided me a getting-started with this detailed step-by-step.

Installing Java and JavaFX on the Raspberry Pi

One of the most read articles on this blog is about the installation of a recent Java on Raspberry Pi (March 13, 2019), so it’s time for an update!

Drumbooth controller with Raspberry Pi, JavaFX, and Arduino

Based on multiple examples from my book “Getting started with Java on Raspberry Pi”, I created a touchscreen controller for the drum booth of my son. Combined with relays boards and an Arduino this allows to control LED strips and different lights with a touch screen interface.

Raspberry Pi and SPI 8x8 LED matrix example with Java and Pi4j

While looking for a cheap and nice component to demonstrate the use of SPI (Serial Peripheral Interface) I found out this 8x8 matrix LED display on a board with a MAX7219 chip is the perfect piece of hardware!

OpenWeatherMap forecast on LCD with Raspberry Pi, Java and Pi4J

Pi4J contains helper methods to minimize the work needed to use certain hardware modules on the Pi with Java. As an example, we will be using “GpioLcdDisplay” to control an LCD with 2 rows of 16 characters. After requesting the weather forecast from a public website, we will visualize this on the LCD display.

Reactive Spring Flux data from a Pi

Trisha Gee (Coder, blogger, speaker, Developer Advocate at JetBrains, @trisha_gee), which I interviewed for “Chapter 4: Choosing an IDE”, and Josh Long (Spring Developer Advocate at Pivotal, @starbuxman) worked together on a blog series in which they showed the power of reactive data produced by a Spring application. Instead of repeating a REST call each time you want to get data from the server, you do one call which returns a continuous stream in which new data is pushed based on an interval.

Controlling a LED number display with JavaFX and Python on Raspberry Pi

In my book I explain the use of bits and bytes by using a shift register SN74HC595 IC and 5101AS LED number display.

Creating a timeline image with JavaFX

To create some timeline images for my book, I created this little JavaFX application to be able to easily update the content and recreate the image. Of course you can do the same in an image editor, but hey I’m a programmer and lazy, so I want a program to do the job for me ;-)

Calculating resistor value with a JavaFX application

Using the Java library I created (see previous post), it was a piece of cake to create a JavaFX UI on top of it!

Resistor color codes and calculations as a Java Maven library

Next step in my book progress, is getting more into the details of hardware components. And as always starting with the smallest most-used ones: resistors!
To be able to fully document this for the book and create a demo application, I started again with creating and sharing a Java library.

Raspberry Pi history, versions, pins and headers as a Java Maven library

The best way to understand and learn something new, is to document it yourself. That’s what I’m doing in every step for my book-in-progress. And to fully get the pinnings and headers of the different Pi-boards, I decided to gather all info into a Java library with different enums to be able to auto-generate some content for the book and use in a few different example applications.

Controlling Arduino with Mosquitto and JavaFX on Raspberry Pi

One of the example applications in my book “Getting started with Java on the Raspberry Pi” combines a JavaFX application with Mosquitto on the Raspberry Pi to control a LED strip with an Arduino. All wireless and independent of each other as the Mosquitto-queue is dealing with exchange commands between all applications.

The mystery of the negative byte value in Java

A story of bits, bytes, signed and unsigned

Some time ago there was a question on the Pi4J-forum caused by some confusion about a numeric value handled as a byte which was logged as a negative number -86 instead of the expected value 170. So this is my attempt to try to solve this mystery… ;-)

LED number display JavaFX library published on Maven

My very first open source JavaFX library is now available in the Maven repository! A small step for mankind, one giant leap for myself ;-)

Quick start Java development with Visual Studio Code

Great move of Microsoft!

They provide an all-in-one installer for Java dependencies and Visual Studio Code. Take a look at https://devblogs.microsoft.com/visualstudio/announcing-visual-studio-code-java-installer/

Pi4J to easily work with the hardware of a Raspberry Pi with Java

What is Pi4J

See https://www.pi4j.com/1.2/index.html

This project is intended to provide a friendly object-oriented I/O API and implementation libraries for Java Programmers to access the full I/O capabilities of the Raspberry Pi platform. This project abstracts the low-level native integration and interrupt monitoring to enable Java programmers to focus on implementing their application business logic.

Pi4J - Adding a REST interface with Spring Boot

As I was learning Spring Boot myself, I thought the easiest way to learn was trying to build an example and write about it. So here we go… :-)

Pi4J - Extending with a JavaFX info application

While trying out what Pi4J can do, I found it could easily be extended with a JavaFX application to provide info about the headers on a Pi board. This could later be extended to a remote/local (touch) User Interface using the REST interface from this post.

PiJava overview - Java 11 and JavaFX 11 on Raspberry PI

As my daily work mainly is Java and back-end stuff on “real servers”, I set myself for 2019 as a personal goal to experiment with Java 11 on a Raspberry PI.

PiJava - Part 6 - JavaFX 11 on Raspberry PI with TilesFX and GPIO

What we will do

Based on the previous blog posts

So there is one “small” step remaining: build something which actually does something on the PI, talking to the GPIO’s and show what’s happening.
Spoiler alert: this is what’s is going to look like:

PiJava - Part 5 - Running the minimal JavaFX 11 application on Raspberry PI

In part 2 of this blog series Java 11 was successfully installed on a PI.

And in part 4 a running Java FX jar was generated on a PC.

PiJava - Part 4 - Building a minimal JavaFX 11 application with Maven

I prefer a Java app above a web app, because starting a new “modern” web development requires you to pull a bunch of dependencies and a lot of files before you can start. While Java just needs the JDK and one Java file, even on a Raspberry PI (as described in PiJava - Part 2).

PiJava - Part 3 - What is Java FX?

What is JavaFX?

From the Oracle site: “JavaFX is a set of graphics and media packages that enables developers to design, create, test, debug, and deploy rich client applications that operate consistently across diverse platforms.”

PiJava - Part 2 - Installing Java 11 on a Raspberry PI 3 Model B+

After my first (and failed) attempt to get Java 11 running on an old Raspberry PI, I bought a brand new 3 Model B+ version.

PiJava - Part 1 - Trying to run Java 11 on an old Raspberry PI

One of my goals for 2019 is experimenting with the latest Java and JavaFX versions on a Raspberry PI. After my experiments with the Python Pong game I was not very happy with the GUI I could build with Python and definitely wanted to try something similar, but with JavaFX which I like much more.

Courses

Java Quick Start

Is Java your first programming language and do you want to get up and running fast? Or maybe you are already an experienced programmer in another language and want to give Java a try?

Getting Started with Java on the Raspberry Pi

For sale as ebook on Leanpub, with continuous free updates!

Introduction

Cover of ebook and paper book 'Getting Started with Java on the Raspberry Pi'

When I first managed to blink a LED connected to a Raspberry Pi with Java, I was super excited!