Элементы интерфейса и их расположение

Display List — Список отображения

Все, что можно расположить на окне — называется узлами (Node). Список отображения содержит все узлы, которые есть в окне, т.е. которые надо рисовать, и которые могут взаимодействовать с пользователем. У узлов могут быть подузлы (дети, дочерние узлы). У панели дети — это те узлы, которые на ней лежат, например, кнопки. Получается, что узлы образуют иерархию.

Видов узлов бывает много. Некоторые узлы могут иметь явно заданные размеры, а некоторые узлы не знают свой размер, но могут вычислить его по содержимому. Т.е. ширину и высоту узла можно узнать всегда. Некоторые узлы можно оформлать с помощью CSS, некоторые — нет.

Кнопка — имеет и размер, и может оформляться через CSS. ImageView — узел для отображения картинок, не имеет ничего из этого.

У многих узлов есть возможность указать бордюр, отступы (см. border, padding в CSS).

Типы узлов и похожих объектов

Stage — сцена, окно операционной системы. У него можно настраивать заголовок, конпки открытия, закрытия, можно фиксировать её размер. Scene — сцена, внутренность окна, то место, в котором происходит рисование интерфейса. Она содержит внутри себя ссылку на корневой узел (тот узел, на котором лежат все остальные), и она имеет размер. Он соответствует размеру окна. При создании сцены размер можно указать.

VBox — панелька для того, чтобы располагать на ней другие узлы, причём эти узлы выставляются по вертикали друг за другом. Т.е. эта панель сама располагает элементы внутри себя. HBox — аналогичная, но располагает элементы по горизонтали. Pane — тоже панелька для узлов, но она не управляет положением элементов, и их можно расставлять как угодно. GridPane — панелька, располагает элементы внутри себя в узлах сетки.

Button — кнопка, реагирует на нажатие Label — метка с текстом. Статический текст, не взаимодействует с пользователем TextField — поле ввода текста, одна строка (Введите имя, пароль) TextArea — поле ввода текста, многострочное и с форматированием. List — список элементов ColorPicker — компонент для выбора цвета.

Circle — кружок указанного размера, цвета. Rectangle — прямоугольник

Пример 1. Окно с кнопкой. JavaFXExample

Пример 2. Окно с несколькими кнопками по вертикали JavaFXExampleSeveralButtons

Пример 3. Окно с несколькими кнопками по вертикали и несколькими компонентами по горизонтали JavaFXExampleSeveralPanels

При настройке расположения элементов на панели можно 1) настроить саму панель. Например, в VBox: .setSpacing() — пропуски между элементами 2) каждому элементу на панели можно добавить свои настройки о его расположении.