Учебники

JavaFX — Архитектура

JavaFX предоставляет полный API с богатым набором классов и интерфейсов для создания приложений с графическим интерфейсом с богатой графикой. Важными пакетами этого API являются —

  • javafx.animation — содержит классы для добавления анимаций на основе переходов, таких как заливка, затухание, поворот, масштабирование и перевод, к узлам JavaFX.

  • javafx.application — содержит набор классов, отвечающих за жизненный цикл приложения JavaFX.

  • javafx.css — содержит классы для добавления CSS-подобного стиля в приложения с графическим интерфейсом JavaFX.

  • javafx.event — содержит классы и интерфейсы для доставки и обработки событий JavaFX.

  • javafx.geometry — содержит классы для определения 2D-объектов и выполнения над ними операций.

  • javafx.stage — этот пакет содержит классы контейнеров верхнего уровня для приложения JavaFX.

  • javafx.scene — этот пакет предоставляет классы и интерфейсы для поддержки графа сцены. Кроме того, он также предоставляет подпакеты, такие как холст, диаграмма, элемент управления, эффект, изображение, ввод, макет, мультимедиа, рисование, форма, текст, преобразование, веб и т. Д. Существует несколько компонентов, которые поддерживают этот богатый API JavaFX. ,

javafx.animation — содержит классы для добавления анимаций на основе переходов, таких как заливка, затухание, поворот, масштабирование и перевод, к узлам JavaFX.

javafx.application — содержит набор классов, отвечающих за жизненный цикл приложения JavaFX.

javafx.css — содержит классы для добавления CSS-подобного стиля в приложения с графическим интерфейсом JavaFX.

javafx.event — содержит классы и интерфейсы для доставки и обработки событий JavaFX.

javafx.geometry — содержит классы для определения 2D-объектов и выполнения над ними операций.

javafx.stage — этот пакет содержит классы контейнеров верхнего уровня для приложения JavaFX.

javafx.scene — этот пакет предоставляет классы и интерфейсы для поддержки графа сцены. Кроме того, он также предоставляет подпакеты, такие как холст, диаграмма, элемент управления, эффект, изображение, ввод, макет, мультимедиа, рисование, форма, текст, преобразование, веб и т. Д. Существует несколько компонентов, которые поддерживают этот богатый API JavaFX. ,

На следующем рисунке показана архитектура JavaFX API. Здесь вы можете увидеть компоненты, которые поддерживают JavaFX API.

Архитектура JavaFX API

График сцены

В JavaFX приложения с графическим интерфейсом были закодированы с использованием графа сцены. Граф сцены является отправной точкой при создании приложения с графическим интерфейсом. Он содержит прикладные примитивы (GUI), которые называются узлами.

Узел является визуальным / графическим объектом и может включать в себя:

  • Геометрические (графические) объекты — (2D и 3D), такие как круг, прямоугольник, многоугольник и т. Д.

  • Элементы управления пользовательского интерфейса — такие как кнопка, флажок, поле выбора, текстовая область и т. Д.

  • Контейнеры — (панели макета), такие как Граница, Панель сетки, Панель потока и т. Д.

  • Элементы мультимедиа — такие как объекты аудио, видео и изображения.

Геометрические (графические) объекты — (2D и 3D), такие как круг, прямоугольник, многоугольник и т. Д.

Элементы управления пользовательского интерфейса — такие как кнопка, флажок, поле выбора, текстовая область и т. Д.

Контейнеры — (панели макета), такие как Граница, Панель сетки, Панель потока и т. Д.

Элементы мультимедиа — такие как объекты аудио, видео и изображения.

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

График сцены

Каждый узел в графе сцены имеет одного родителя, а узел, который не содержит никаких родителей, называется корневым узлом .

Таким же образом, у каждого узла есть один или несколько дочерних узлов, а узел без дочерних узлов называется конечным узлом ; узел с дочерними элементами называется узлом ветвления .

Экземпляр узла может быть добавлен в граф сцены только один раз. Узлы графа сцены могут иметь эффекты, непрозрачность, преобразования, обработчики событий, обработчики событий, специфичные для приложения состояния.

призма

Prism — это высокопроизводительный графический конвейер с аппаратным ускорением, который используется для визуализации графики в JavaFX. Он может отображать как 2-D, так и 3-D графику.

Для визуализации графики Prism использует —

  • DirectX 9 на Windows XP и Vista.
  • DirectX 11 в Windows 7.
  • OpenGL на Mac и Linux, встраиваемые системы.

В случае, если аппаратная поддержка графики в системе недостаточна, тогда Prism использует путь обработки программного обеспечения для обработки графики.

При использовании с поддерживаемой графической картой или графическим процессором он обеспечивает более плавную графику. На случай, если система не поддерживает графическую карту, по умолчанию Prism использует стек программного рендеринга (любой из двух вышеупомянутых).

GWT (стеклопакетный инструментарий)

Как следует из названия, GWT предоставляет сервисы для управления Windows, таймерами, поверхностями и очередями событий. GWT соединяет платформу JavaFX с собственной операционной системой.

Quantum Toolkit

Это абстракция над низкоуровневыми компонентами Prism, Glass, Media Engine и Web Engine. Он связывает Prism и GWT вместе и делает их доступными для JavaFX.

WebView

Используя JavaFX, вы также можете встраивать контент HTML в граф сцены. WebView — это компонент JavaFX, который используется для обработки этого контента. Он использует технологию, называемую Web Kit , которая является внутренним движком открытого браузера. Этот компонент поддерживает различные веб-технологии, такие как HTML5, CSS, JavaScript, DOM и SVG.

Используя WebView, вы можете —

  • Рендеринг содержимого HTML с локального или удаленного URL.
  • Поддержите историю и обеспечьте Назад и Вперед навигацию.
  • Перезагрузите контент.
  • Применить эффекты к веб-компоненту.
  • Отредактируйте содержимое HTML.
  • Выполните команды JavaScript.
  • Обрабатывать события.

В общем, используя WebView, вы можете управлять веб-контентом из Java.

Media Engine

Медиа-движок JavaFX основан на движке с открытым исходным кодом, известном как Streamer . Этот медиа-движок поддерживает воспроизведение видео и аудио контента.

Движок JavaFX обеспечивает поддержку аудио для следующих форматов файлов:

аудио
  • MP3
  • WAV
  • AIFF
видео
  • FLV

Пакет javafx.scene.media содержит классы и интерфейсы для обеспечения функциональности мультимедиа в JavaFX. Он представлен в виде трех компонентов, которые:

Медиа-объект — представляет медиа-файл

Media Player — для воспроизведения медиа контента.

Просмотр мультимедиа — для отображения мультимедиа.