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

В данной статье будет рассмотрена архитектура приложений JavaFX.  JavaFX является надслойкой виртуальной машины JVM и включает в себя целый набор утилит и модулей для полноценной работы с 2D/3D графикой, с представлениями окон, медиа — контентом, WEB — контентом, а также предоставляет программные инструменты для взаимодействия между, вышеперечисленными, компонентами. Ниже представлена иллюстрация того, как устроена надслойка JavaFX

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

 

Графы сцены

Графы сцены или Scene Graph  — это самый верхний слой в архитектуре JavaFX. Он представлен иерархической структурой узлов и является начальной точкой построения визуального приложения JavFX, который включает в себя различные визуальные элементы управления. Данный слой управляет вводом и выводом данных начальных и конечных данных от пользователя. Графа сцены представлен набором узлов, которые имеют атрибуты такие как ID(уникальный идентификатор узла), который необходим для идентификации элемента управления в Java или CSS коде, class(используется, как правило при придании различных стилевых свойств атрибутов через CSS) и др., а также представлен определенным, ограниченным размером в пределах экрана монитора. За исключением корневого элемента или как его еще называют root node, каждый узел имеет свой родительский элемент и 0 или более дочерних узлов, которым можно придать следующие атрибуты:

  • Эффекты, такие как мутность и тень;
  • Прозрачность;
  • Трансформации;
  • Обработчики событий мыши, клавиатуры, внутренних методов в коде Java;
  • Специфичных для приложения различные состояния отображения;

В отличии от Swing и AWT(Abstract Window Toolkit) , JavaFX включает в себя еще графические примитивы такие как линии, прямоугольники, окружности и т.д., которые можно использовать наряду с остальными элементами управления и в дополнении имеет контейнеры, элементы для просмотра изображений и проигрывания медиа-контента.

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

JavaFX API позволяет создавать контент, специфичный для нескольких типов:

  • Узлы: Сущности (2-D и 3-D), изображения, медиа, встроенный WEB браузер, текст, UI элементы, графики, группы и другие контейнеры;
  • Состояние: Трансформации (позиции и ориентации узлов), визуальные эффекты и другие визуальные состояния;
  • Эффекты: Простые объекты, которые меняют свой внешний вид, обретая эффекты замутнения, тени и цветовых установок;

 Публичный открытый API для JavaFX

Верхний слой JavaFX архитектуры, показанный на вышеприведенной картинке, предоставляет законченный, публичный API, который поддерживает построение богатых возможностями клиентских приложений. Данный API предоставляет не параллельную, свободную и гибкую возможность для построения богатые клиентскими возможностями приложения. В JavaFX скомбинорованы лучшие возможности Java платформы со всесторонним погружением в медиа-функционал. Java для JavaFX характеризует:

  • Позволяет использовать полноценные Java характеристики , такие как генераторы, аннотации, многопоточность и лямбда выражения(включенные в Java SE 8);
  • Делает разработку для WEB очень легкой и позволяет для этого использовать другие, базовые для JVM, языки, такие как Groovy и JavaScript;
  • Позволяет разработчикам использовать другие системные языки, такие как Groovy для написания больших комплексных и сложных JavaFX приложений;
  • Позволяет использовать связывание, которое включают поддержку для высокопроизводительных lazy binding, binding выражения, bound sequence выражения и частичное связывание;
  • Внешние Java коллекции библиотек включают наблюдаемые списки(observable lists) и карты, которые позволяют программам соединять пользовательский интерфейс к моделям данных, позволяя наблюдать за обновлением или изменением данных в этих моделях и обновлением или изменением вместе с этим данных в пользовательских элементах управления;

JavaFX API и и программная модель имеет продолжение от JavaFX 1.x линейки выпуска, поэтому старые проекты можно легко перенести на новый выпуск JavaFX 2.x без особых затруднений.

 

Вам также может понравиться

Об авторе WebSofter

Web - технологии

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...