Spec-Zone.ru › OpenJavaFX 11

Пакет 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, которые должны использоваться в качестве основы для расчётов выравнивания, и могут отличаться от визуальных границ узла. Для фигур, текста и ImageView значение по умолчанию layoutBounds включает только геометрию фигуры.

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

CSS

Граф сцены JavaFX предоставляет возможность стилизовать узлы с помощью CSS (каскадных таблиц стилей). Класс 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
    Параметры, используемые для указания атрибутов визуализации для моментального снимка узла (Node).
    SnapshotResult
    Этот класс содержит результат операции моментального снимка.
    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