children

open override val children: MutableObservableList<Node>

The base class Node has no children, so this is an empty list.

Many subclasses (e.g. HBox, VBox) expose children as a MutableObservableList, which means you can modify the children directly.

More complex subclasses (such as ToolBar, BorderPane and ScrollPane), children remains immutable. Nodes can be added to them in other ways. e.g. ToolBar.items, BorderPane.top, ScrollPane.content. For these subclasses, the API lets you examine children, but this isn't recommended, because the structure of the node may change. For example, in early versions of ToolBar, the items in the toolBar were direct child nodes, but now they are grandchildren, with a container node placed in between.

NOTE. There is no special interface for nodes which have children. There are very few node types which never have children. Text and ImageView are the only ones that come to mind. Even the humble Label can have a graphic as a child node.