Класс Scene (Сцена)

Scene – контейнер для графического содержимого внутри окна Stage. Сцена определяет область отображения и хранит граф сцены (иерархию узлов интерфейса).
Корневой узел: при создании Scene указывается корневой элемент (Root Node) – с него начинается древо UI-элементов. Размеры сцены (ширина, высота) можно задать явно или подстраивать под содержимое/окно.
Замена сцены: в каждом Stage может быть только одна активная Scene одновременно. Можно динамически менять сцену Stage (через stage.setScene(...)), чтобы переключать интерфейс в окне.



Пояснение


Если Stage – это пустое окно, то Scene – это то, что наполняет окно содержимым. При создании сцены вы обычно пишете: Scene scene = new Scene(rootNode, width, height);, где rootNode – корневой узел (например, некий Layout-панель типа VBox или AnchorPane, содержащая остальные элементы). Ширину и высоту можно указать, либо вообще вызвать конструктор new Scene(rootNode), тогда размер сцены подстроится под содержимое или размеры окна.
Сцена знает о своем корневом узле и через него – обо всех остальных узлах интерфейса. Граф сцены (scene graph) – это структура данных (дерево), включающая все компоненты UI, которые должны отображаться в данной сцене. Пока узел находится в графе сцены, он видим (если не скрыт явно) и интерактивен; удаляем узел из графа – он пропадает с экрана.
Размещать элементы на сцене напрямую нельзя – всегда нужен корневой контейнер. Чаще всего корневой узел – это панель компоновки (Layout Pane), например BorderPane, VBox, StackPane или др., которая уже внутри себя содержит дочерние узлы (кнопки, текстовые поля и т.д.). Такая вложенная структура формирует интерфейс.
Вы можете в любой момент заменить сцену у Stage: например, primaryStage.setScene(otherScene). Это удобно, когда нужно кардинально сменить интерфейс в окне – вместо удаления/создания множества элементов можно подготовить другую сцену (возможно, загрузив ее из другого FXML) и установить ее. При этом старая сцена будет отвязана от окна (можно ее сохранить, чтобы потом вернуть, или она станет доступна для сборщика мусора, если больше не нужна). Обратите внимание: один Stage одновременно отображает ровно одну Scene. Нельзя показать две сцены в одном окне параллельно, нужно либо объединять элементы в одной сцене, либо открывать новое окно.
Автор: к.п.н., Румянцев Сергей Александрович, доцент Финансового университета при Правительстве РФ; доцент ОЧУВО Международного инновационного университета; Консалтинг, управление разработкой ПО; системный и бизнес анализ; менеджмент; аналитиз данных; управление ИТ. Телефон для связи +79269444818 (мессенджеры)   Короткая ссылка:
Scene – контейнер для графического содержимого внутри окна Stage. Сцена определяет область отображения и хранит граф сцены (иерархию узлов интерфейса).
Корневой узел: при создании Scene указывается корневой элемент (Root Node) – с него начинается древо UI-элементов. Размеры сцены (ширина, высота) можно задать явно или подстраивать под содержимое/окно.
Замена сцены: в каждом Stage может быть только одна активная Scene одновременно. Можно динамически менять сцену Stage (через stage.setScene(...)), чтобы переключать интерфейс в окне.



Пояснение


Если Stage – это пустое окно, то Scene – это то, что наполняет окно содержимым. При создании сцены вы обычно пишете: Scene scene = new Scene(rootNode, width, height);, где rootNode – корневой узел (например, некий Layout-панель типа VBox или AnchorPane, содержащая остальные элементы). Ширину и высоту можно указать, либо вообще вызвать конструктор new Scene(rootNode), тогда размер сцены подстроится под содержимое или размеры окна.
Сцена знает о своем корневом узле и через него – обо всех остальных узлах интерфейса. Граф сцены (scene graph) – это структура данных (дерево), включающая все компоненты UI, которые должны отображаться в данной сцене. Пока узел находится в графе сцены, он видим (если не скрыт явно) и интерактивен; удаляем узел из графа – он пропадает с экрана.
Размещать элементы на сцене напрямую нельзя – всегда нужен корневой контейнер. Чаще всего корневой узел – это панель компоновки (Layout Pane), например BorderPane, VBox, StackPane или др., которая уже внутри себя содержит дочерние узлы (кнопки, текстовые поля и т.д.). Такая вложенная структура формирует интерфейс.
Вы можете в любой момент заменить сцену у Stage: например, primaryStage.setScene(otherScene). Это удобно, когда нужно кардинально сменить интерфейс в окне – вместо удаления/создания множества элементов можно подготовить другую сцену (возможно, загрузив ее из другого FXML) и установить ее. При этом старая сцена будет отвязана от окна (можно ее сохранить, чтобы потом вернуть, или она станет доступна для сборщика мусора, если больше не нужна). Обратите внимание: один Stage одновременно отображает ровно одну Scene. Нельзя показать две сцены в одном окне параллельно, нужно либо объединять элементы в одной сцене, либо открывать новое окно.
https://webprogr.ru/~zT1Ym
Короткая ссылка на новость:https://webprogr.ru/~zT1Ym


Последние новости

Класс Scene (Сцена)

Scene – контейнер для графического содержимого внутри окна Stage. Сцена определяет область отображения и хранит граф сцены (иерархию узлов интерфейса).
Корневой узел: при создании Scene указывается корневой элемент (Root Node) – с него начинается древо UI-элементов. Размеры сцены (ширина, высота) можно задать явно или подстраивать под содержимое/окно.
Замена сцены: в каждом Stage может быть только одна активная Scene одновременно. Можно динамически менять сцену Stage (через stage.setScene(...)), чтобы переключать интерфейс в окне.



Пояснение


Если Stage – это пустое окно, то Scene – это то, что наполняет окно содержимым. При создании сцены вы обычно пишете: Scene scene = new Scene(rootNode, width, height);, где rootNode – корневой узел (например, некий Layout-панель типа VBox или AnchorPane, содержащая остальные элементы). Ширину и высоту можно указать, либо вообще вызвать конструктор new Scene(rootNode), тогда размер сцены подстроится под содержимое или размеры окна.
Сцена знает о своем корневом узле и через него – обо всех остальных узлах интерфейса. Граф сцены (scene graph) – это структура данных (дерево), включающая все компоненты UI, которые должны отображаться в данной сцене. Пока узел находится в графе сцены, он видим (если не скрыт явно) и интерактивен; удаляем узел из графа – он пропадает с экрана.
Размещать элементы на сцене напрямую нельзя – всегда нужен корневой контейнер. Чаще всего корневой узел – это панель компоновки (Layout Pane), например BorderPane, VBox, StackPane или др., которая уже внутри себя содержит дочерние узлы (кнопки, текстовые поля и т.д.). Такая вложенная структура формирует интерфейс.
Вы можете в любой момент заменить сцену у Stage: например, primaryStage.setScene(otherScene). Это удобно, когда нужно кардинально сменить интерфейс в окне – вместо удаления/создания множества элементов можно подготовить другую сцену (возможно, загрузив ее из другого FXML) и установить ее. При этом старая сцена будет отвязана от окна (можно ее сохранить, чтобы потом вернуть, или она станет доступна для сборщика мусора, если больше не нужна). Обратите внимание: один Stage одновременно отображает ровно одну Scene. Нельзя показать две сцены в одном окне параллельно, нужно либо объединять элементы в одной сцене, либо открывать новое окно.
Рейтинг@Mail.ru