Basics
Guides
API Reference
Basics
Guides
API Reference
ControlsFX adds a broad set of higher-level JavaFX UI controls to Aussom under
fx.controlsfx.*. It fills in many gaps left by the standard JavaFX control
set, especially around selection controls, popovers, notifications, advanced
layout containers, and data-oriented widgets.
In Aussom the ControlsFX surface is split across several modules so the wrapper files stay manageable:
fx.controlsfx.controlsfxfx.controlsfx.FontAwesomefx.controlsfx.BasicControlsfx.controlsfx.SelectionControlsfx.controlsfx.LayoutControlsfx.controlsfx.AdvancedControlsPropertySheet and GridView| Area | Common Classes |
|---|---|
| Notifications and popups | CfxNotifications, NotificationPane, PopOver |
| Basic controls | ToggleSwitch, RangeSlider |
| Selection controls | CheckComboBox, CheckListView, CheckTreeView, SearchableComboBox, SegmentedButton, BreadCrumbBar |
| Layout and status | StatusBar, MaskerPane, MasterDetailPane, HiddenSidesPane, InfoOverlay |
| Advanced controls | Rating, TaskProgressView, PropertySheet, GridView |
Include the modules for the controls you plan to use:
include fx;
include fx.Label;
include fx.VBox;
include fx.ToggleButton;
include fx.controlsfx.controlsfx;
include fx.controlsfx.BasicControls;
include fx.controlsfx.SelectionControls;
include fx.controlsfx.LayoutControls;
include fx.controlsfx.AdvancedControls;
include fx;
include fx.Label;
include fx.VBox;
include fx.controlsfx.controlsfx;
include fx.controlsfx.BasicControls;
app = fx.fxApp("ControlsFX Notifications", 540, 280);
body = new Label("Main content");
pane = new NotificationPane(body);
pane.setText("Inline notification");
root = new VBox();
root.add(pane);
app.setLayout(root);
app.show(true);
pane.showText("Saved locally");
controlsfx.newNotifications()
.owner(app)
.title("Saved")
.text("ControlsFX notification")
.position("BOTTOM_RIGHT")
.hideAfterMillis(1500)
.showInformation();
fx.shutdown();
include fx;
include fx.VBox;
include fx.controlsfx.BasicControls;
include fx.controlsfx.SelectionControls;
app = fx.fxApp("ControlsFX Form", 480, 360);
toggle = new ToggleSwitch("Enabled");
toggle.setSelected(true);
range = new RangeSlider(0.0, 100.0, 20.0, 80.0);
combo = new SearchableComboBox(["Alpha", "Beta", "Gamma"]);
combo.select("Beta");
root = new VBox();
root.add([toggle, range, combo]);
app.setLayout(root);
app.show(true);
fx.shutdown();
PropertySheet is intentionally thin in v1. It is most useful once you have
AJI-backed PropertySheet.Item objects to feed into it.
include fx;
include fx.VBox;
include fx.controlsfx.AdvancedControls;
app = fx.fxApp("ControlsFX Advanced", 700, 520);
sheet = new PropertySheet();
sheet.setSearchBoxVisible(true);
sheet.setModeSwitcherVisible(true);
sheet.setMode("CATEGORY");
sheet.setTitleFilter("cpu");
grid = new GridView(["A", "B", "C"]);
grid.setCellWidth(90.0);
grid.setCellHeight(50.0);
grid.setVerticalCellSpacing(8.0);
root = new VBox();
root.add([sheet, grid]);
app.setLayout(root);
app.show(true);
fx.shutdown();
include fx;
include fx.Label;
include fx.VBox;
include fx.controlsfx.BasicControls;
app = fx.fxApp("ControlsFX PopOver", 420, 240);
anchor = new Label("Hover target");
popover = new PopOver(new Label("Popover content"));
popover.setTitle("Popover");
popover.setHeaderAlwaysVisible(true);
popover.setCloseButtonEnabled(true);
popover.setDetachable(false);
root = new VBox();
root.add(anchor);
app.setLayout(root);
app.show(true);
popover.showForNode(anchor);
fx.shutdown();
PopOver and CfxNotifications behave
differently from normal scene-graph nodes. They are shown relative to another
node or owner window.PropertySheet is intentionally conservative in the current wrapper. Feed it
raw AJI or custom PropertySheet.Item objects when you need real editable
property rows..obj
and AJI rather than blocking on a wrapper addition.fx.controlsfx.FontAwesome.
Aussom
Write once. Embed everywhere.
Copyright 2026 Austin Lehman. All rights reserved.