The course guides students through the process of designing a rich client application using JavaFX. Using the Model-View-Controller (MVC) pattern and a case study approach, students analyze, design, and develop the UI, connect the UI to a database, and finally connect the UI to a RESTful web service. The UI is built using core Java FX components including layouts, UI controls, data structures like ObservableList, charts, smart tables, CSS, and JavaFX concurrency libraries. Students will learn how to add two- and three-tier functionality to their application by connecting to a database using the Java Persistence API (JPA). Finally, they will learn how to connect their application to a RESTful web service using JAX-RS and the Jersey API.

Other topics are:
  • Package and deploy your application
  • Develop secure applications
  • Signing an application and authentication
  • Adding logging to your application
  • Implementing unit tests with JUnit

learn to:
  • Build a graphical user interface with Java FX
  • Connect a Java FX GUI to the database using JPA
  • Connect a Java FX GUI to a RESTful web service
  • Package and deploy a Java FX application
  • Sign a Java FX application


  • Providing an overview of Rich Client Applications (RIAs)
  • Providing an overview of JavaFX

The broker tool application

  • Describes an overview of BrokerTool
  • Describe the BrokerTool database schema
  • Provides an overview of the Henley Automobile application

JavaFX overview

  • Demonstration of simple JavaFX applications
  • What is JavaFX?
  • Exploring the JavaFX API
  • Understand JavaFX Scene Graph
  • How do I create a JavaFX app?
  • Creating a JavaFX FXML Application
  • Comparison of JavaFX with Swing
  • Overview of the JavaFX functions

Generics and JavaFX collections

  • Checking the Java Generics syntax
  • Checking Java Generic Collection objects
  • Checking the ObservableList and ObservableMap of the JavaFX Collection

UI controls, layouts, charts and CSS

  • Understand Scene Graph in detail
  • Using UI controls in a JavaFX application
  • Using layout features in JavaFX application
  • Using charts in JavaFX application
  • Understand the use of CSS in JavaFX applications
  • Adding events to JavaFX controls

Visual effects, animation, web view and media

  • Using visual effects in JavaFX application
  • Using animation and transition features in JavaFX application
  • Describe the benefits of using WebView and WebNode
  • Describe the implementation of multimedia in JavaFX

JavaFX tables and client GUI

  • Create smart tables
  • Describe the BrokerTool app interface
  • Determine which JavaFX components to use in the BrokerTool interface
  • View BrokerTool data and determine which charts and tables to use to view data
  • Applying CSS to a JavaFX application

JavaFX concurrency and binding

  • Describe properties and binding in JavaFX
  • Implementation of threading and concurrency in JavaFX

Java Persistence API (JPA)

  • Understand JPA concepts
  • Understand components of the JPA architecture
  • What are transactions?
  • Performing CRUD operations using entity and queries

Application of the JPA

  • Identifying Entity Relationships
  • Using the Criteria API in the JavaFX application
  • Applying JPA in HenleyApp application
  • Applying a two-tier design

Implementing a layered design with RESTful web services

  • Comparison of the three-tier design with the two-tier design
  • Describe JAX-RS web services
  • Using JAX-RS web services in the HenleyServer application

Connecting to a RESTful web service

  • Testing REST web service with HTTP and HTML
  • Development of JAX-RS web service clients
  • Identify how to develop a Jersey RESTful client
  • Reviewing HenleyApp's web service client implementation

Package and deploy applications

  • Using jar to package Java applications
  • deploy applications
  • Deploy Embedded Applications
  • Deploy Jar with Java Web Start
  • Using an installer
  • Deploy Rich Internet with the Deployment Toolkit

Develop secure applications

  • Describe the aspects of security
  • Describe basic secure coding concepts
  • Avoiding common injection and entrapment attacks
  • Protection of confidential data
  • Limiting the accessibility of classes
  • understand changeability
  • List of security resources available on the Internet

Signing an application and authentication

  • Description of encryption with public and private keys
  • Description of digital signatures
  • Introduction of SSL/TLS
  • Understanding the HTTP authentication mechanism
  • Using HTTPS with an application


  • Overview of the Java Logging API
  • Creating a logger object
  • Set log levels
  • Review of logging methods
  • Configure logger handlers and formatters
  • Using the logger configuration

Implementing unit tests and using version control

    • Understand unit tests, test cases and functions of JUnit
    • Understand and write JUnit test cases
    • Using NetBeans support for JUnit
    • Use of the version control system

Previous knowledge

  • in Java Programming

Target group

  • Developers
  • Java Developers