
Set up IntelliJ IDEA community edition for JavaFX, create a new project with group and artifact IDs, and explore Scene Builder and CSS styling for a banking app.
Build a hello world JavaFX app with a Maven project and fxml view, connect to a hello controller, and update the label on button click using a vertical box.
Explore how to terminate a JavaFX application with explicit and implicit approaches, including platform.exit and the stop method, and understand how implicit exit affects window close versus application exit.
Explore core Java principles and their relation to two Java effects, building on intermediate knowledge of classes, data structures, and design patterns. Review the section and skip topics you know.
Explore how Maven standardizes JavaFX project builds, manages dependencies and plugins, and streamlines the life cycle from creation to deployment.
Explore the Java platform module system, learning how modules group related packages, improve distribution and encapsulation, and control visibility via module-info.java, requires, and exports in a JavaFX project.
Explore the observable design pattern and how it links state changes to UI components. Learn to implement a news agency example with channels, observers, and update notifications.
The factory design pattern illustrates creating objects without exposing creation logic, using a shape interface and concrete shapes like rectangle, circle, and square, powered by a shape factory.
Explore properties and bindings in JavaFX, using observable properties to synchronize data models with UI elements through directional and bi-directional bindings.
Learn JavaFX properties by building an employee example using string and integer properties, observable changes via a listener, and a UI with a label and a button to double salary.
Explore read-only properties in JavaFX by using read-only wrapper classes to expose a read-only property while maintaining a synchronized read-write property behind the scenes.
Explore unidirectional and bidirectional bindings using text fields and labels in a java fx banking app, demonstrating the binding api, property observers, and dynamic ui updates.
Learn to use observable collections in JavaFX, including ArrayList, with a factory pattern, and bind a list view that updates the UI in real time as items are added.
Learn how events drive user interactions in JavaFX, from mouse and keyboard inputs to touch gestures, and explore event types, targets, and the contrast between procedural and GUI applications.
Explore events in JavaFX, including event sources, targets, and types, with key and mouse input examples, and learn the event dispatch chain with capture and bubbling phases.
Explore convenience properties in JavaFX that store single event handlers for commonly used events on nodes, simplifying quick registration compared with traditional addEventHandler methods.
Explore consuming events in JavaFX by using an event filter during the capture phase to stop the event from propagating through the event dispatch chain, altering the button's behavior.
Learn to handle mouse and keyboard events in JavaFX by capturing mouse positions on the scene and displaying X and Y coordinates and pressed keys.
Explore how JavaFX layout panes organize UI controls with static and dynamic layouts, learn pane policies, and combine VBox with other panes to build flexible interfaces.
Master JavaFX utility enums and the insets class to control alignment and spacing of UI nodes. Apply padding values to shift elements using horizontal and vertical position constants.
Explore the group layout in JavaFX, a collection of nodes with layout policy and coordinate system. It renders children in add order and positions them at 0 0 by default.
Master the hbox layout in JavaFX to arrange nodes in a horizontal row, controlling spacing, alignment, and fill height, with edge grow and margin constraints for responsive UI.
Explore the VBox layout in JavaFX, configuring spacing, alignment, and fill width, adding text areas, and enabling vertical growth with insets and margins for responsive, multi-layout design.
Master the JavaFX flowpane layout by arranging controls in rows or columns with horizontal or vertical orientation, configurable gaps, wrap length, and alignment, and see its dynamic resizing in action.
Explore the JavaFX border pane layout by building a fruit tracker app with five regions, a left list, a center input and add button, and live updates.
Explore the stack pane layout in JavaFX, stacking children in added order and controlling alignment to overlay text on shapes, with a rectangle and a label example.
Discover tile pane layout: arrange children in a uniform grid with configurable alignment, spacing, orientation, and preferred rows or columns, plus per-tile constraints in a practical example.
Explore the GridPane layout in JavaFX, learn to place and constrain nodes with row and column constraints, and use convenient add methods to build flexible forms.
Learn to design a text flow layout in JavaFX to display rich text with text nodes, headings and paragraphs, and control line spacing, alignment, and width.
Explore JavaFX controls, focusing on text input and labeled controls. Learn how buttons, text fields, labels, and other interactive nodes form the scene graph and interact with users.
Explore label controls in JavaFX, focusing on the text and graphic properties to create a label with a 20 by 20 red rectangle, and apply font and color styling.
Discover how JavaFX buttons work, including command buttons, choice buttons, and buttons that are both; learn about normal, default, and console button modes, their properties, and set action events.
Learn how the menu button functions as a command button with an observable list of menu items, populate its items property, and register actions like visiting Google and YouTube.
Explains the toggle button as a two-state control, changing a rectangle color and label, and introduces a toggle group to track seasonal choices (spring, summer, fall, winter) with a listener.
Explore radio buttons and toggle buttons in JavaFX by creating a radio button group, wiring listener handlers, and updating a user selection label to reflect spring, summer, fall, or winter.
Explore the JavaFX choice box control, using an observable list and a single selection model to manage selections and reflect the selected item on a label.
Explore the color picker in JavaFX, a combo box-derived control, to choose colors, view their hex values, and apply the selected color to a region background.
Learn how to use the date picker, a combo box derived control for selecting dates. Capture the chosen date with get value and display it in a label.
Learn to implement a JavaFX slider with a 0–100 range, initial value 20, and 10-step increments, then wire three RGB sliders (0–255) to update the root background via CSS.
Explore JavaFX menus by building a menu bar with file and edit menus, items like save and exit, a separator, and action listeners to perform tasks.
Explore how the tab pane in JavaFX manages tabs, including adding, naming, and closing tabs, and how to set tab content with layouts like VBox for dynamic interfaces.
Implement a custom ListCell in JavaFX to display a to-do task within a ListView with a checkbox; toggle strikethrough on check, using an observable task list and a cell factory.
Learn to use table view in JavaFX by building a user table with first name, last name, and birth date columns, backed by a user utility and a user class.
Create custom table cells in JavaFX with a delete button column, using a cell factory and update method. Harness observable lists and data binding to remove rows and manage selection.
Learn how to enable in-table editing in JavaFX TableView, using text field table cells, edit commit events, and a local date string converter to edit dates while updating data model.
Explore the tree view control in JavaFX by building a hierarchical structure with a root, branches and leaf items, configuring expansion, selection, and events via tree modification event handling.
Explore the Java Effects concurrent framework api, built on the Java concurrent package, and learn about the worker interface, one-shot tasks, and scheduled services for nonblocking, parallel tasks.
Explore the worker interface in the Java effects concurrency framework, detailing states (ready, scheduled, running, canceled, failed, succeeded) and properties such as title, progress, total work, value, and exception.
Explore building a simple JavaFX task demo that binds labels and controls to a task's properties, displays progress with a progress bar, and shows total work and status updates.
Create a public static boolean isEven(int number) method that returns true if number modulo two equals zero, otherwise false, to be used with the UI as we build next task.
Extend the abstract task class to create a concrete task, implement call returning an ObservableList, and manage title, value, progress, and event handlers for cancelled, running, scheduled, and succeeded.
Wire up start, cancel, and exit buttons in a JavaFX app to run an even number task on a background thread, tracking progress and state.
Explore FXML, a markup language for building JavaFX user interfaces with XML. Learn how it separates UI from business logic, enabling rapid prototyping with Scene Builder and visual styling.
Learn to build a JavaFX user interface with FXML using the MVC pattern, and load XML with an FXML loader to bind model and view.
Install and run Scene Builder as a standalone tool to visually edit XML, prototype your JavaFX UI quickly, and customize with Font Awesome icons on buttons and anchor panes.
Explore how a JavaFX FXML controller initializes ui components, declares fx:id fields, binds the model to the view, and handles events with an initialize method and event handlers.
Discover how to use pre constructed controllers by manually creating a controller, injecting it into fxml loader, and rely on model single turn pattern with data binding to update ui.
Partition your JavaFX UI into multiple FXML files for a modular banking interface, include the left component in the main border pane, and wire its controller.
Learn how sqlite provides lightweight data persistence for a javafx banking app, offering a standalone, easy-to-use database library that keeps the focus on javafx while teaching basic sql usage.
Build the Maze Bank project structure for a JavaFX banking app by organizing controllers, models, views, and resources, including admin, client, and login modules, with Maven configuration and FXML-based UI.
Design and implement a JavaFX login UI using Scene Builder and CSS, creating a responsive login form with account type selection, username, password, and error handling.
Create a left navigation menu for a JavaFX banking app by building a client menu view and controller, styling VBox with icons and action buttons.
Create a dynamic JavaFX dashboard in the client app by updating the border pane center from the left navigation, showing accounts summary, latest transactions, and a send money view.
Build and reuse JavaFX views with a view factory, loading the dashboard and login window from FXML, and manage a left menu and a center dashboard in a border pane.
Learn how to close a JavaFX stage after login by implementing a closeStage utility, obtaining the current stage from a node, and calling stage.close.
Implement dynamic center view switching in a JavaFX banking app by wiring a client menu property and updating the border pane center with transactions or dashboard views via view factory.
Build the accounts view in the JavaFX banking app, showing checking and savings accounts with balances and creation dates, and enable transfers between them.
Design and implement the admin menu for the banking application by adapting the client menu, configuring containers, styling with CSS, and wiring up admin buttons.
Develop the create client page in the admin main window with a form for first name, last name, password, ip address, and account options, plus styling.
implement view selector and view enums by replacing string properties with enums for client menu options and account types, enabling type-safe selection and dynamic client or admin views.
Build the admin clients view in a JavaFX banking app by creating the clients controller, applying a stylesheet, and wiring the admin switch to load the clients view.
Build the admin deposit view in a JavaFX banking app, featuring a search field, list of results, and an amount form with a deposit button styled via CSS.
Design a custom list cell for a JavaFX banking app to display transactions, including sender, receiver, amount, date, and income or expense indicators, using Scene Builder and CSS.
Create a custom client list cell for the JavaFX banking app admin panel using an HBox, showing name, address, accounts, date created, and a delete icon.
Explore cell factories in JavaFX to render transaction and client lists with custom cells, FXML loaders, and dedicated controllers that bind data to UI elements.
Add icons to the stage and disable the maximize button in JavaFX. Learn to load icons from resources and set the stage to non-resizable for a polished UI.
Define the transaction model with observable sender, receiver, amount, date, and a message, plus a constructor, enabling data binding to UI controls in the JavaFX banking application.
Design an abstract account model in JavaFX with owner, account number, and balance, then implement checking and savings accounts featuring a transaction limit and a withdrawal limit.
Explore the model with a single turn pattern to share data across the application, and understand how the database uses SQL sequence and auto increment IDs.
Define a database driver to connect to the maze bank database and expose client, admin, and utility methods, with notes on error handling and security.
Evaluate client credentials against the database, populate client data from the results set, and set a login success flag; manage account type (client or admin) and show errors on failure.
Learn to implement admin login by querying the admins table, validating credentials, updating a login success flag, and updating the user interface labels for account type.
Implement logout in the client and admin views by closing the current stage, showing the login window, and resetting the login flags to false to prevent reentry.
launch a new client in a javafx banking app by creating checking and savings accounts, generating an ip address, and updating the database via admin ui listeners.
Develop the admin client view in JavaFX by populating a client list from the database, including checking and savings account data, via utility methods, and debug a column mismatch error.
Bind the client dashboard to the model, display a greeting with the first name prefixed by hi, show the login date, and present checking and savings balances and account numbers.
Fetch and display client transactions by querying the database for sender or receiver; populate observable lists and bind them to the dashboard, including latest and all transactions with optional paging.
Learn how to implement a client-to-client money transfer in JavaFX, including creating transactions, updating savings balances, and validating receiver details.
Learn how to implement an account summary by aggregating income and expenses from all transactions, color-code income and expense arrows, and reflect updates across the dashboard and transactions pages.
Brief intro to the section and what we will be doing.
Explore two approaches to integrating web content in JavaFX: embed a website with WebView or fetch raw JSON data from a cloud API to build a weather widget.
Explore how WebView renders web content inside a JavaFX app. Use WebEngine to load pages, handle page load events, execute JavaScript, and interact with the rendered content.
Explore how to render web pages in JavaFX using WebView and its WebEngine, loading sites like google.com and YouTube, and wire navigation controls to load pages and view history.
Navigate the web history in a JavaFX web view by accessing the history's observable entries, removing duplicates, and populating a dynamic menu of urls that load via the web engine.
Bind the web engine load progress to a progress bar and monitor the load state for success or failure in JavaFX. Load local and remote pages with WebView.
You've arrived at the most comprehensive and latest JavaFX course. This course is designed to help you gain a concrete understanding of JavaFX and scale your Java knowledge. We focus on good design and industry best practices in software architecture. We regularly update this course with new material and projects. We believe that only a student who understands the why of fundamentals can become a good developer so If you desire to learn JavaFX the right way and how to apply it in a real-world application beyond the basics, then we believe this is the course for you.
A few things you will learn in this course:
- JavaFX architecture and execution cycle.
- How to use a project management tool to manage your application's lifecycle.
- Different ways to design JavaFX applications.
- How to customize and style controls and layouts.
- Best design patterns and data structures frequently used in JavaFX.
- How to create data persistence with databases.
Why would you learn JavaFX?
The truth is there probably are more reasons to learn JavaFX than one can count, but the one I usually give is simply because one is curious. JavaFX has come a long way and as such has seen a multitude of applications even on mobile and will continue to be widely used even in the face of a growing shift to internet-based applications. However, with all that being said perhaps the biggest impact it can have on new students is to broaden their knowledge of Java and programming at large while also serving as an important addition to one's resume and portfolio.