What are JavaFX, FXML and Scene Builder?

If you've heard of/used Swing before, think of JavaFX as its cooler, easier-to-use alternative and replacement (JavaFX is to replace Swing as java's main platform for desktop and internet applications, although both will continue to be supported in the foreseeable future).

FXML is nothing more than:

a XML-based user interface markup language created by Oracle Corporation for defining the user interface of a JavaFX application

You can create your user interface directly by code, or in the fxml file with a .fxml postfix. E.g., my_ui.fxml

One of the most important tools in JavaFX applications development is the JavaFX Scene Builder (Snapshot below) It allows you to easily drag and drop controls (widgets) to create your UI in minutes:

enter image description here

The code for this layout is generated automatically (in your_layout.fxml file) as you drag items into your layout.

Take a look at these cool tutorials on JavaFX:

Getting Started with JavaFX


Think of JavaFX as a bunch of packages which allows one to create rich internet and desktop applications.
If you know Swing or AWT, then you know that they are used to create GUI applications. JavaFX also allows you to create GUI applications, but with less programming, and with more visual effects at your disposal.

FXML is a file format which JavaFX uses to create the layout of screens, though you can even code your user interface directly. Although its much more easy to create FXML files using SceneBuilder.

SceneBuilder is an application where you can drag and drop JavaFX UI components, and then tell your JavaFX program to use the fxml file(s) to display the user interface.

Here's a nice tutorial: Learn JavaFX And you can check out the JavaOne 2013 JavaFX based videos from the following link: JavaFX at JavaOne 2013.

Official Oracle Tutorials on JavaFX are highly recommended. These tutorials cover FXML, SceneBuilder, CSS and many other topics. As you are using NetBeans, using the Oracle tutorials should be straightforward as they all ship with NetBeans projects (just look for the project zip files in the columns on the right of each tutorial page).

I would suggest that you download JDK 8 and use JavaFX 8, and use the new capabilities of Java 8 in your JavaFX application like Lambda Expressions, etc to make your code compact and clean.