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 API. Здесь вы можете увидеть компоненты, поддерживающие JavaFX API.
График сцены
В JavaFX приложения с графическим интерфейсом пользователя были написаны с использованием графа сцен. График сцены - это отправная точка построения приложения с графическим интерфейсом пользователя. Он содержит примитивы приложения (GUI), которые называются узлами.
Узел - это визуальный / графический объект, который может включать в себя:
Geometrical (Graphical) objects - (2D и 3D), например круг, прямоугольник, многоугольник и т. Д.
UI controls - например, кнопка, флажок, поле выбора, текстовая область и т. Д.
Containers - (панели макета), такие как панель границы, панель сетки, панель потока и т. Д.
Media elements - такие как аудио, видео и изображения.
В общем, набор узлов составляет граф сцены. Все эти узлы расположены в иерархическом порядке, как показано ниже.
Каждый узел в графе сцены имеет единственного родителя, а узел, не содержащий родителей, известен как root node.
Точно так же у каждого узла есть один или несколько потомков, а узел без потомков называется leaf node; узел с дочерними элементами называетсяbranch node.
Экземпляр узла можно добавить к графу сцены только один раз. Узлы графа сцены могут иметь эффекты, непрозрачность, преобразования, обработчики событий, обработчики событий и состояния, специфичные для приложения.
Призма
Призма - это high performance hardware–accelerated graphical pipelineкоторый используется для рендеринга графики в JavaFX. Он может отображать как 2-D, так и 3-D графику.
Для рендеринга графики призма использует -
- 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.
Медиа-движок
В JavaFX media engine основан на движке с открытым исходным кодом, известном как Streamer. Этот медиа-движок поддерживает воспроизведение видео и аудио контента.
Медиа-движок JavaFX обеспечивает поддержку звука для следующих форматов файлов:
Audio |
|
---|---|
Video |
|
Пакет javafx.scene.mediaсодержит классы и интерфейсы для предоставления мультимедийных функций в JavaFX. Он предоставляется в виде трех компонентов, а именно:
Media Object - Это медиафайл
Media Player - Для воспроизведения медиа-контента.
Media View - Для отображения СМИ.