<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>The Absolute Beginners Guide to Reactive JavaFX on PragmaticCoding</title><link>http://localhost:1313/beginners/intro/</link><description>Recent content in The Absolute Beginners Guide to Reactive JavaFX on PragmaticCoding</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>nuno@n9o.xyz (Blowfish)</managingEditor><webMaster>nuno@n9o.xyz (Blowfish)</webMaster><copyright>© 2026 Blowfish</copyright><atom:link href="http://localhost:1313/beginners/intro/index.xml" rel="self" type="application/rss+xml"/><item><title>Part 1 - A Quick Start</title><link>http://localhost:1313/beginners/part1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/beginners/part1/</guid><description>The very first step. What else? &amp;ldquo;Hello World&amp;rdquo; in JavaFX.</description></item><item><title>Part 2 - Configuring Layouts</title><link>http://localhost:1313/beginners/part2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/beginners/part2/</guid><description>Some basics about building layouts and making your screens look the way you want.</description></item><item><title>Part 3 - User Interaction</title><link>http://localhost:1313/beginners/part3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/beginners/part3/</guid><description>GUI applications need a way for the user to interact with them. In this lesson we&amp;rsquo;ll show how to allow user input with TextField, and to launch an action with a Button.</description></item><item><title>Part 4 - Styling</title><link>http://localhost:1313/beginners/part4/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/beginners/part4/</guid><description>JavaFX includes Cascading Style Sheets for styling the elements of your GUI. This is a quick guide about how to use them.</description></item><item><title>Part 5 - Application Framework</title><link>http://localhost:1313/beginners/part5/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/beginners/part5/</guid><description>Building an application that &amp;ldquo;does something&amp;rdquo; means adopting a framework that works well with JavaFX. Here we build the skeleton of the Model-View-Controller-Interactor framework that we&amp;rsquo;re going to use for our CRUD application.</description></item><item><title>Part 6A - First Feature: Minimal Create</title><link>http://localhost:1313/beginners/part6a/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/beginners/part6a/</guid><description>The first feature for our CRUD application has to be &amp;ldquo;Create&amp;rdquo;. In this lesson we&amp;rsquo;ll get started by designing the GUI and connecting it to the Controller.</description></item><item><title>Part 6B - Adding Persistence</title><link>http://localhost:1313/beginners/part6b/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/beginners/part6b/</guid><description>In this lesson we finish up a &amp;ldquo;bare-bones&amp;rdquo; Create function by building the back-end and connecting it to the business logic in the Interactor. Part of this involves creating a simulated database.</description></item><item><title>Part 7 - What Next?</title><link>http://localhost:1313/beginners/part7/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/beginners/part7/</guid><description>Now we&amp;rsquo;ve completed the core programming for our &amp;ldquo;Create&amp;rdquo; function, where do go next. We&amp;rsquo;ll look at the idea of a &amp;ldquo;Product Backlog&amp;rdquo;, and talk about how we should prioritize our next steps.</description></item><item><title>Part 8 - Dealing With Latency and Blocking</title><link>http://localhost:1313/beginners/part8/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/beginners/part8/</guid><description>Our simulated database doesn&amp;rsquo;t really do a good job standing in for a real database because it works too fast. We&amp;rsquo;ll slow it down and see what horrible things this does to our application. Then we&amp;rsquo;ll see how to deal with this.</description></item><item><title>Part 9 - GUI Validation</title><link>http://localhost:1313/beginners/part9/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/beginners/part9/</guid><description>We&amp;rsquo;ve also got a big problem with our application because there&amp;rsquo;s no data validation in our screen. This means that users can save invalid customer data. We&amp;rsquo;ll look at how to cope with this properly.</description></item><item><title>Part 10 - Handling Database Errors</title><link>http://localhost:1313/beginners/part10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/beginners/part10/</guid><description>The last problem with our application is that it can save duplicate customer records, corrupting our database. This means adding some rules to our database and telling our GUI when those rules have been broken. We&amp;rsquo;ll see how to handle exceptions from the back-end in our application.</description></item><item><title>Part 11 - A "Working" Application</title><link>http://localhost:1313/beginners/part11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/beginners/part11/</guid><description>At this point we have a pretty clean &amp;ldquo;Create&amp;rdquo; application. It&amp;rsquo;s error resistant, doesn&amp;rsquo;t corrupt our database and ready to add some more functionality. Let&amp;rsquo;s look at what we&amp;rsquo;ve done so far.</description></item><item><title>Part 12 - Adding a New Field: eMail</title><link>http://localhost:1313/beginners/part12/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/beginners/part12/</guid><description>It&amp;rsquo;s finally time to add a third field to our screen! In this article we&amp;rsquo;re going to add just a single new field, for email, to our screen. We&amp;rsquo;re going to see how the process goes from the View all the way down to the Broker. Most importantly, we going to see how we need to be vigilant in ensuring that our code stays clean as we add more features.</description></item><item><title>Part 13 - Feature Envy</title><link>http://localhost:1313/beginners/part13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/beginners/part13/</guid><description>In this article we&amp;rsquo;re going to look at how Feature Envy has crept into our View code. We&amp;rsquo;re going to look at why this happens, and how to deal with it. Finally, we&amp;rsquo;re going to see how clearing out Feature Envy makes our code much cleaner and easier to understand.</description></item><item><title>Moving On - Building A CRUD Application</title><link>http://localhost:1313/javafx/beginners/crud/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/beginners/crud/</guid><description>&lt;h1 class="relative group"&gt;Introduction
 &lt;div id="introduction" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#introduction" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;So far we&amp;rsquo;ve built an application that does little, but demonstrates a lot. Now we&amp;rsquo;re going to write one of the most common types of application out there - CRUD (Create, Retrieve, Update and Delete).&lt;/p&gt;</description></item></channel></rss>