My experience with JavaFX to write Desktop Applications

ryandam
4 min readNov 16, 2020

This post is about my experience using JavaFX to write some simple desktop applications. I work in Data management dealing with RDBMS like Oracle/SQL Server and Files. I had some ideas to automate the activities that were done manually. For instance, we wrote a scheduler that allows setting up job dependencies and triggers shell scripts on AWS EC2 machines. To track the progress, we had to log into the machine and type some commands.

I thought writing desktop applications would be a better idea. However, I did not have any idea about writing these. I had little Java development experience that does not include Swing.

At first, I thought since I was going to target only the Windows platform, probably I should explore Universal Windows Platform (UWP). But, it seems to involve a steep learning curve.

That’s when I learned about JavaFX. After spending a few days learning the basics, I started writing the applications.

#1 Job Monitor

#2 Data Browser

#3 Data Analyzer

This application is about finding data that meets specific patterns in JDBC compliant databases. Currently, it supports Oracle/SQL Server/Teradata. One simple use case is identifying all the columns in all tables in a schema/database that holds credit card data. The idea is to find out all attributes that have Personally Identifiable Information (PII) data.

#4 Stato

This is not a JavaFX application, but I wanted to include it for the sake of completeness.

Stato is a web application to show the live status of an Oracle DB. Many times I write SQL queries to find out answers for questions like the query has been running for a while - what’s happening, what’s the size of this table, what’s the current usage of temp space, etc.

As you may know, many databases provide meta-data tables/views to provide up-to-date status of a database. They’re called Catalog tables or metadata tables. They’re present in Oracle, IBM (SYSIBM tables), SQL Server (INFORMATION_SCHEMA), etc.

I wanted to write an application that shows each and every bit of data provided by the database without the user have to write queries manually. I started with Stato. Its backend is a Python/Flask application to connect to a database, execute queries to fetch metadata. The UI is written in JavaScript, Bootstrap, and Google Charts.

The application is still under development.

--

--