Skip to main content

Posts

JavaFX: After Netbeans what next?

I have taught JavaFX as a User Interface tool for a number of years. Just as it matured, the owners of Java decided to pull it out of the standard Java JDK, therefore,  using JavaFX is no longer a trivial matter. I used Netbeans to edit and run JavaFX code but Netbeans is also afloat, now owned by Apache Foundation. The new Apache Netbeans doesn't seem to run JavaFX without considerable effort. I have given up on Nerbeans. Whereto now? What do we use for our JavaFX? Do we give up on JavaFX and move on to some other UI tool? Python? plain old java with AWT/SWING? Not a chance. JavaFX has some elegance difficult to attain with these other tools. Its simple tool. Why complicate life by adopting ageing tools that just dont meet the demands of our fast-paced 21st century? Therefore, there was a need to figure out what can serve to build UIs. I choose JavaFX again but after some examination, I found that the IDE that seems to work and is actively being developed is Intellij IDEA. C
Recent posts

How to Run JavaFX 11+ in Intellij IDEA

First published: 8th June 2019 This page explains: 1. How to set up Intellij IDEA with JavaFX 11+ 2. How to configure Intellij IDEA to run JavaFX programs. Follow the links below to download the guides: 1. JavaFX 1 - Installing IntelliJ IDEA and JavaFX 11 Tutorial (8-6-19) 2.  Configure Intellij IDEA to run JavaFX programs

LAMBDA EXPRESSIONS FOR HANDLING EVENTS

Event handlers form the core of any application. They define what happens when you click a button, press a key, select a menu and so on. The discussion on this site demonstrates how to use Lambda expressions to handle events. It is elegant and greatly simplifies your code. The old way of handling a button-click looks like this: Button btn = new Button(); btn.setText("Say 'Hello World'");  btn.setOnAction(new EventHandler<ActionEvent>() {       @Override       public void handle(ActionEvent event)       {           System.out.println("Hello World!");       }  }); The following is a Lambda expression using a "goes to" operator (->): Button button = new Button("Click"); button.setOnAction(value -> { label.setText("Clicked!"); }); Even more elegant: someButton.setOnAction(evt -> someMethod()) Now a greater improvement in programming style: This last format

Android Studio: The Continuing Nightmare [caution, annoyed brother ahead]

If you install Android Studio and it works, consider that a major miracle. Otherwise expect messages like: Gradle doesn't work. Fix you project! [With a saw and hammer, right?] Access denied! Access denied! None of your AVD work so no emulation... FileNotFoundException! - What file please? And does AS expect me to help find it? Why can't YOU find it?  I wish it was kickable - I would give it a very giant KICK. Update! [1.5GB] At lunch - Update! 1GB Evening - Update! Is update some kind of chronic disease or what? And who's going to pay for all these bundles. (9 GB today alone. It's an embarrassment for Google. This thing is like the old steam locomotive: it needs water and wood every few miles. Indexing...………………………………………………………………… an empty project...……………………………………………………. for 30min...……………………………! Get serious Google. If its dead, bury it. Start all over from scratch. AVD won't load Can't find AVD...……….. Java 10.1 is an invalid JDK…………… Can't

Where to Place External CSS File

The following is what a lot of tutorials recommend to specify the CSS file in JavaFX scene.getStylesheets().add("myStyle.css") ; But where do you place the "myStyle.css" file? A JavaFX project typically is located as follows (using Netbeans): C:\Users\UserName\Documents\NetBeansProjects\JavaFXProjectFolder Insider the project folder, you will find the following: Don't place your CSS file in " src " which is where many tutorial tell you to place the CSS file. You will loose your hair prematurely  due to excessive scratching as you try to convince your app to find your CSS. Instead, open the " build " folder inside which you will find: Place your CSS file in the " classes " folder that contains compiled Java classes. It will look like this: Best wishes with you JavaFXing.

Sane JavaFX GUI Code

JavaFX GUI Sanity JavaFX GUI code can be quite chaotic. Such a situation makes it a challenge to understand the code and to troubleshoot it.  JavaFX GUIs are simple in concept but if you try hard enough, you can disorganise it. Disorganised code is a sign of confusion which is a sign of deeper malaise.... JavaFX graphic user interfaces can be built up very systematically by following a simple process: All the GUI is contained in a Stage . This Stage constitutes the visible application window though it does not have to be visible. On this stage is placed a Scene which contains Panes to organise and hold GUI controls such as buttons and text boxes. However, bad programming practice allows a programmer to add controls directly to the Scene . The problem with this practice is that there is no way to lay out such controls in a systematic pattern such as horizontal list or in a grid formation. Each Scene can have zero, one or more Panes . Panes can contain other Panes . Mo