<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Javafx on PragmaticCoding</title><link>http://localhost:1313/categories/javafx/</link><description>Recent content in 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><lastBuildDate>Tue, 22 Jul 2025 12:00:00 -0500</lastBuildDate><atom:link href="http://localhost:1313/categories/javafx/index.xml" rel="self" type="application/rss+xml"/><item><title>An Introduction to Properties</title><link>http://localhost:1313/javafx/elements/beginners-properties/</link><pubDate>Sun, 29 Sep 2024 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/elements/beginners-properties/</guid><description>If you are a beginner with JavaFX and are wondering, &amp;ldquo;What are all these &lt;code&gt;Property&lt;/code&gt; things anyway?&amp;rdquo;, then this is the article for you. Besides the &lt;code&gt;Properties&lt;/code&gt; themselves, we also cover the basics of using them with &lt;code&gt;Bindings&lt;/code&gt; and &lt;code&gt;Listeners&lt;/code&gt;. Read this article and you should have a good idea how to start out with JavaFX &lt;code&gt;Properties&lt;/code&gt;.</description></item><item><title>Demystifying PseudoClasses in JavaFX</title><link>http://localhost:1313/javafx/elements/pseudo_classes/</link><pubDate>Mon, 24 Jan 2022 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/elements/pseudo_classes/</guid><description>Pseudo Classes are the best way to handle on/off state changes in a Node in JavaFX. But it&amp;rsquo;s very badly explained in the JavaDocs and hard to understand. This article should clear that up.</description></item><item><title>TextFields and TextFormatter - Part 1</title><link>http://localhost:1313/javafx/elements/nodes/textformatter/part-1/</link><pubDate>Tue, 11 May 2021 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/elements/nodes/textformatter/part-1/</guid><description>An introduction to &lt;code&gt;TextFormatter&lt;/code&gt;, showing you how to integrate it into a &lt;code&gt;TextField&lt;/code&gt; and how to use it to convert the input from &lt;code&gt;String&lt;/code&gt; to some other kind of value. Then we&amp;rsquo;ll look at how to add a filter to prevent the user from entering invalid data.</description></item><item><title>Guide To the Observable Classes - Part II</title><link>http://localhost:1313/javafx/elements/observable-classes-typed/</link><pubDate>Thu, 22 Aug 2024 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/elements/observable-classes-typed/</guid><description>&lt;p&gt;This article is about the all of the typed observable classes and interfaces except the ones concerned with &lt;code&gt;List&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You&amp;rsquo;ll find that all of the relationships and structure found in the generic classes is just about exactly the same, but then there are a few extra classes and interfaces added to the hierarchy depending on the type of data that they hold. We&amp;rsquo;ll concentrate mostly on two types, &lt;code&gt;String&lt;/code&gt; and &lt;code&gt;Integer&lt;/code&gt; here, because dealing with the others would just be redundant. &lt;code&gt;String&lt;/code&gt; is typical of stand-alone types, and &lt;code&gt;Integer&lt;/code&gt; is typical of types that are included in &lt;code&gt;Number&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>TextFields and TextFormatter - Part 2</title><link>http://localhost:1313/javafx/elements/nodes/textformatter/part-2/</link><pubDate>Tue, 11 May 2021 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/elements/nodes/textformatter/part-2/</guid><description>A more in-depth look into how to build a &lt;code&gt;TextFormatter&lt;/code&gt; that can be used to turn a &lt;code&gt;TextField&lt;/code&gt; into sophisticated input field. We&amp;rsquo;ll look at designing a &lt;code&gt;TextFormatter&lt;/code&gt; that is tailored to handle fixed place decimal input, using the decimal point itself as a control to toggle between the ordinal and mantissa of the number.</description></item><item><title>Converting FXML to Code</title><link>http://localhost:1313/javafx/techniques/nofxml/2025-07-22-fxml-to-code/</link><pubDate>Tue, 22 Jul 2025 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/techniques/nofxml/2025-07-22-fxml-to-code/</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;Recently, I posted an article titled, &lt;a href="%7B%7Bpage.FxmlOrNot%7D%7D" &gt;Should You Use FXML?&lt;/a&gt;. In that article, I stated that I felt that well written and organized code would always be easier to maintain than any corresponding FXML/FXML Controller would be. I did not emphasize this, as the article was intended to be a discussion about the merits and costs of using FXML more than as a &amp;ldquo;is this better than this?&amp;rdquo;, exploration.&lt;/p&gt;</description></item><item><title>Should You Use FXML?</title><link>http://localhost:1313/javafx/techniques/nofxml/2024-12-29-fxml-or-not/</link><pubDate>Mon, 10 Mar 2025 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/techniques/nofxml/2024-12-29-fxml-or-not/</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;From time to time the question about, &amp;ldquo;To FXML or not to FXML&amp;rdquo; comes up on Reddit and other social media, and I&amp;rsquo;m know as being firmly in the &amp;ldquo;Not FXML&amp;rdquo; camp. I&amp;rsquo;ve had a few people message me about this, so I thought it might be a good time to examine this topic in depth.&lt;/p&gt;</description></item><item><title>JavaFX: Quick Guide to MVCI</title><link>http://localhost:1313/javafx/techniques/mvci/2024-08-01-mvci-quick-guide/</link><pubDate>Thu, 01 Aug 2024 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/techniques/mvci/2024-08-01-mvci-quick-guide/</guid><description>&lt;h1 class="relative group"&gt;Introduction - Why Use a Framework?
 &lt;div id="introduction---why-use-a-framework" 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---why-use-a-framework" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;Frameworks are all about organizing your application so that it will be easy to maintain, enhance and expand over time.&lt;/p&gt;</description></item><item><title>Example: Hexadecimal Editor</title><link>http://localhost:1313/examples/hex-editor/</link><pubDate>Sat, 06 Apr 2024 00:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/examples/hex-editor/</guid><description>Here&amp;rsquo;s a sample application that uses a ListView to display and edit bytes in a data file, showing the values in hex, octal, binary, decimal and as characters.</description></item><item><title>Reskinning ToggleButton</title><link>http://localhost:1313/javafx/techniques/toggle-button-reskin/</link><pubDate>Wed, 19 Jul 2023 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/techniques/toggle-button-reskin/</guid><description>An introduction to JavaFX Skins and Skinnable and how to create your own skin.</description></item><item><title>FXML is NOT Model-View-Controller</title><link>http://localhost:1313/javafx/techniques/nofxml/2023-02-24-fxml-is-not-mvc/</link><pubDate>Mon, 20 Feb 2023 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/techniques/nofxml/2023-02-24-fxml-is-not-mvc/</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;OK, first off I know I&amp;rsquo;m swimming against the stream here, and at odds with things like this found in some of the tutorial pages from Oracle for JavaFX:&lt;/p&gt;</description></item><item><title>An Introduction to Model-View-Controller-Interactor</title><link>http://localhost:1313/javafx/techniques/mvci/2022-11-06-mvciintro/</link><pubDate>Mon, 07 Nov 2022 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/techniques/mvci/2022-11-06-mvciintro/</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;This article is an introduction to and a &amp;ldquo;how to&amp;rdquo; for the framework that I&amp;rsquo;ve developed for building Reactive JavaFX applications. It&amp;rsquo;s called &amp;ldquo;Model-View-Controller-Interactor&amp;rdquo;, or just, &amp;ldquo;MVCI&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Multi-MVCI Projects</title><link>http://localhost:1313/javafx/techniques/mvci/2022-11-02-multimvci/</link><pubDate>Sun, 02 Oct 2022 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/techniques/mvci/2022-11-02-multimvci/</guid><description>&lt;h1 class="relative group"&gt;Projects With Multiple Screens and Functions
 &lt;div id="projects-with-multiple-screens-and-functions" 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="#projects-with-multiple-screens-and-functions" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;One of the questions that seems to come up fairly often is about how to create a project that is composed of a number of different screens and functions.&lt;/p&gt;</description></item><item><title>How to Swap Scenes Properly</title><link>http://localhost:1313/javafx/techniques/swap-scenes/</link><pubDate>Tue, 24 May 2022 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/techniques/swap-scenes/</guid><description>Taking a look at the three most common design patterns for building systems with user interfaces. How are they different? which one is best? Is there anything better?</description></item><item><title>How to Build a JavaFX Application That Does Something</title><link>http://localhost:1313/javafx/projects/weatherfx/</link><pubDate>Sun, 06 Feb 2022 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/projects/weatherfx/</guid><description>Maybe you&amp;rsquo;ve figured out how to build a working GUI that looks good. Now, how do you connect it to the rest of the world and make it do something?</description></item><item><title>Wordle in Kotlin JavaFX</title><link>http://localhost:1313/javafx/projects/wordlefx/</link><pubDate>Sat, 29 Jan 2022 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/projects/wordlefx/</guid><description>The original Wordle is JavaScript in a browser, here&amp;rsquo;s an implementation of it in Reactive JavaFX written in Kotlin.</description></item><item><title>How to Write a JavaFX Screen without FXML &amp; Scene Builder</title><link>http://localhost:1313/javafx/techniques/nofxml/2021-08-24-javfx_without_fxml/</link><pubDate>Tue, 24 Aug 2021 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/techniques/nofxml/2021-08-24-javfx_without_fxml/</guid><description>&lt;p&gt;Way, way back in 2014 when I started learning JavaFX, I tried using Scene Builder and FXML and found it to be an amazing waste of time and effort. One of the best decisions I ever made was to abandon it early on, and just code screens by hand. I advise everyone else to do the same.&lt;/p&gt;</description></item><item><title>Hangman in JavaFX</title><link>http://localhost:1313/javafx/hangman/</link><pubDate>Sun, 15 Aug 2021 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/hangman/</guid><description>How much code does it take to build a complete Hangman game in JavaFX?&lt;br&gt;It turns out &amp;hellip; Not much!</description></item><item><title>Implementing MVC in JavaFX</title><link>http://localhost:1313/javafx/techniques/mvci/2021-05-11-mvc_in_javafx/</link><pubDate>Tue, 11 May 2021 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/techniques/mvci/2021-05-11-mvc_in_javafx/</guid><description>&lt;p&gt;Model-View-Controller is generally accepted as a good way to structure an application with a user interface. While JavaFX contains all of the classes needed to implement MVC in a natural and seamless way, it doesn&amp;rsquo;t seem to be widely documented and there&amp;rsquo;s little evidence on the Web that many people have figured out how to do it properly. The fact that JavaFX supports Reactive programming makes a big difference to how you should implement MVC.&lt;/p&gt;</description></item><item><title>MineSweeper in JavaFX</title><link>http://localhost:1313/javafx/projects/minesweeper/</link><pubDate>Mon, 03 May 2021 12:00:00 -0500</pubDate><author>nuno@n9o.xyz (Blowfish)</author><guid>http://localhost:1313/javafx/projects/minesweeper/</guid><description>MineSweeper! Everyone&amp;rsquo;s favourite time-waster Windows game. Implemented in JavaFX showing how the reactive nature of JavaFX can be used with MVC to create a game.</description></item></channel></rss>