Spec-Zone.ru › OpenJavaFX 17

Package javafx.scene

Предоставляет основной набор базовых классов для API JavaFX Scene Graph. Граф сцены — это древовидная структура данных, где каждый элемент в дереве имеет ноль или одного родителя и ноль или более дочерних элементов.

Два основных класса в этом пакете:

  • Scene – Определяет сцену, подлежащую отрисовке. Она содержит переменную fill, которая задаёт фон сцены, переменные width и height, которые задают размер сцены, и последовательность content, содержащую список «корневых» Nodes, которые должны быть отрисованы на сцене. Эта последовательность Nodes является графом сцены для этой Scene. Scene отрисовывается на Stage, который является контейнером верхнего уровня для содержимого JavaFX.
  • Node – Базовый абстрактный класс для всех узлов в графе сцены. Каждый узел является либо «листовым» узлом без дочерних узлов, либо «ветвящимся» узлом с нулём или более дочерних узлов. Каждый узел в дереве имеет ноль или одного родителя. Только один узел в каждом дереве в графе сцены не будет иметь родителя, что часто называется «корневым» узлом. В графе сцены может быть несколько деревьев. Некоторые деревья могут быть частью Scene, в этом случае они могут быть отображены. Другие деревья могут не принадлежать ни к одному Scene.

Ветвящиеся узлы являются типа Parent или их подклассов.

Листовые узлы — это такие классы, как Rectangle, Text, ImageView, MediaView, или другие подобные листовые классы, которые не могут иметь дочерние элементы.

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

Пример

Пример графа сцены JavaFX:

package example;

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.Group;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.text.Text;
import javafx.scene.text.Font;

public class Example extends Application {

    @Override public void start(Stage stage) {
        
        Group root = new Group();
        Scene scene = new Scene(root, 200, 150);
        scene.setFill(Color.LIGHTGRAY);

        Circle circle = new Circle(60, 40, 30, Color.GREEN);
        
        Text text = new Text(10, 90, "JavaFX Scene");
        text.setFill(Color.DARKRED);
        
        Font font = new Font(20);
        text.setFont(font);
        
        root.getChildren().add(circle);
        root.getChildren().add(text);
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        Application.launch(args);
    }
}

Данный пример сгенерирует следующий образ:

A visual rendering of the JavaFX Scene example

Система координат и преобразования

Класс Node определяет традиционную «локальную» систему координат компьютерной графики, в которой ось x увеличивается вправо, а ось y увеличивается вниз. Конкретные классы узлов для фигур предоставляют переменные для определения геометрии и расположения фигуры в этом локальном пространстве координат. Например, Rectangle предоставляет переменные x, y, width, height, в то время как Circle предоставляет centerX, centerY и radius.

К любому Node могут быть применены преобразования. К ним относятся преобразования сдвига, поворота, масштабирования или сдвига. Преобразование изменит положение, ориентацию или размер системы координат, как видно из родителя узла, который был преобразован.

Дополнительную информацию о преобразованиях см. в классе Node.

Прямоугольник ограничивающей области

Поскольку у каждого Node есть преобразования, геометрический прямоугольник ограничивающей области каждого узла может быть описан по-разному в зависимости от того, учитываются ли преобразования или нет.

Каждый Node имеет следующие свойства, которые определяют эти прямоугольники ограничивающей области:

  • boundsInLocal — задаёт границы Node в не преобразованных локальных координатах.
  • boundsInParent — задаёт границы Node после применения всех преобразований. Он называется «boundsInParent», потому что прямоугольник будет относиться к системе координат родителя.
  • layoutBounds — задаёт прямоугольные границы Node, которые должны использоваться в качестве основы для расчётов макета, и могут отличаться от визуальных границ узла. Для фигур, текста и изображений значение layoutBounds по умолчанию включает только геометрию фигуры.

Дополнительную информацию о прямоугольниках ограничивающей области см. в классе Node.

CSS

Граф сцены JavaFX предоставляет возможность стилизовать узлы с помощью CSS (Cascading Style Sheets). Класс Node содержит id, styleClass и style переменные, используемые селекторами CSS для поиска узлов, к которым должны быть применены стили. Класс Scene содержит переменную stylesheets, которая является последовательностью URL-адресов, ссылающихся на листы стилей CSS, которые должны быть применены к узлам в этой сцене.

Для получения дополнительной информации о CSS, о том, как применять CSS-стили к узлам и какие свойства доступны для стилизации, см. руководство по CSS.

Сводка по классам
Класс Описание
AmbientLight
Определяет объект источника рассеянного света.
Camera
Базовый класс для камеры, используемой для отрисовки сцены.
Cursor
Класс для инкапсуляции битовой карты изображения курсора мыши.
Group
Узел Group содержит список ObservableList дочерних элементов, которые отрисовываются в порядке, когда этот узел отрисовывается.
ImageCursor
Пользовательское изображение курсора мыши.
LightBase
Класс LightBase предоставляет определения общих свойств для объектов, представляющих форму источника света.
Node
Базовый класс для узлов графа сцены.
ParallelCamera
Определяет параллельную камеру для отрисовки сцены без коррекции перспективы.
Parent
Базовый класс для всех узлов, имеющих дочерние элементы в графе сцены.
PerspectiveCamera
Определяет камеру перспективы для отрисовки сцены.
PointLight
Источник света, излучающий свет равномерно во всех направлениях от себя.
Scene
Класс JavaFX Scene — это контейнер для всего содержимого в графе сцены.
SceneAntialiasing
Класс JavaFX SceneAntialiasing задает уровень требуемой антиалиасинга.
SnapshotParameters
Параметры, используемые для указания атрибутов отрисовки для снимков узла.
SnapshotResult
Этот класс содержит результат операции создания снимка.
SpotLight
SpotLight — это PointLight, который излучает свет в конусе в определенном направлении.
SubScene
Класс SubScene — это контейнер для содержимого в графе сцены.
Сводка по перечислениям
Перечисление Описание
AccessibleAction
Это перечисление описывает действия, которые может запросить технология вспомогательных средств, такая как программа чтения с экрана, от графа сцены.
AccessibleAttribute
Это перечисление описывает атрибуты, которые может запросить технология вспомогательных средств, такая как программа чтения с экрана, от графа сцены.
AccessibleRole
Это перечисление описывает доступную роль для Node.
CacheHint
Рекомендации к кешированию для использования с Node.cacheHint
DepthTest
Это перечисление определяет возможные состояния флага depthTest в узле.

© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API