
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.
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 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.
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 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.
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.
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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.