Note: This documentation on UI controls is intended to cover the JavaFX 8.x API and implementation, and this does differ from the 2.x API and implementation. Do not rely on this documentation if you are not intending to work against JavaFX 8.x.
The JavaFX User Interface Controls (UI Controls or just Controls) are specialized Nodes in the JavaFX Scenegraph especially suited for reuse in many different application contexts. They are designed to be highly customizable visually by designers and developers. They are designed to work well with layout systems. Examples of prominent controls include Button, Label, ListView, and TextField.
Since Controls are Nodes in the scenegraph, they can be freely mixed with Groups, Images, Media, Text, and basic geometric shapes. While writing new UI Controls is not trivial, using and styling them is very easy, especially to existing web developers.
The remainder of this document will describe the basic architecture of the JavaFX UI Control library, how to style existing controls, write custom skins, and how to use controls to build up more complicated user interfaces.
An overview of how JavaFX UI controls are structured
An overview of how to customise the look of UI Controls using both custom CSS and replacement skins.
An overview of the public API in JavaFX 8.x for providing designers / developers custom CSS properties and pseudoclass states for your custom controls.
Developing Custom UI Controls
A tutorial on writing custom UI controls using JavaFX 8.x public API.