The JavaFX – платформа, базирующаяся на Java и используемая для написания программ с насыщенным графическим интерфейсом. Инструмент GUI для Джавы, с которым удобно работать. «Библиотека», нацеленная на создание настольных приложений и разнообразных игр.

The JavaFX заменяет Swing за счет GUI-инструментов. Данная платформа дает возможность стилизовать файлы компоновки (XML), а также делать их более симпатичными через CSS. Разработчиком The JavaFX выступила компания Oracle. Его основными конкурентами являются Microsoft Silverlight и Adobe Flash.

Начиная с Java 11 версии, The Java FX не входит в JavaSE. Компанией Oracle над ней больше не ведется разработка. Этот проект развивается в качестве отдельного модуля. Его обновлением занимается организация Gluon. Oracle поддерживает The Java FX в JDK 8 до марта 2025 года.

Немного истории

Рассматриваемая платформа – это удобный инструмент для программиста игр и настольного программного обеспечение. Технология, которая была впервые продемонстрирована Sun Microsystems на конференции JavaOne в 2007 году. Уже в декабре 2008 появилась первая версия платформы. Она поддерживала:

  • средства разработки;
  • интегрированную среду программирования NetBeans IDE 6 версии;
  • инструменты и плагины для импорта графики в приложения The JavaFX (Production Suite).

Платформа стала стремительно развиваться и к марту 2014 вышла ее 8 версия. В The JavaFX 8 поддерживается 3D-графика, сенсорный ввод и печать. Это последняя актуальная версия «пакета».

Ключевые особенности JavaFX

Перед использованием рассматриваемого пакета разработчики должны знать его ключевые особенности. К преимуществам платформа The JavaFX относят следующие моменты:

  1. Поставка с достойным набором частей графического интерфейса. Разработчик сможет сразу работать с текстовыми полями, деревьями, меню, диаграммами, таблицами, кнопками и так далее.
  2. Совместимость с CSS-стилями. Допускается использование специального формата для создания GUI – FXML. Данный прием делает размещение пользовательского графического интерфейса, а также его изменение проще. Разработчику не потребуется долго разбираться в коде программы.
  3. Поддержка готовых к эксплуатации частей диаграмм. Опция полезна при создании базовых «графиков».
  4. Работа с 3D-графикой.
  5. Простое осваивание – изучить принципы работы The JavaFX и научиться создавать с его помощью программное обеспечение способен даже новичок.
  6. Регулярные обновления и OpenSource.
  7. Поддержка технологий нативных образов. С ее помощью разработчики смогут преобразовывать приложения The JavaFX в нативный исполняемый документ. Он запускается очень быстро, занимая на устройстве на порядок меньше пространства.

Соответствующая платформа поддерживает многопоточность. Разобраться с The JavaFX будет проще тем, кто уже знает Java и ему подобные языки разработки. Код, полученный при помощи данной «технологии», будет понятным и читабельным.

Основные инструменты и возможности

Рассматриваемая платформа поддерживает API для GUI-компонентов. Среди основных ее инструментов выделяют:

  • базовые опции – Stage, Sence, FXML и так далее;
  • макеты – Text Flow, HBox, VBox, Border Pane;
  • системы управления UI – Label, Button, MenuBar, TextField;
  • средства оперирования контейнерами – Accordion, TablePlane;
  • веб-пакеты – WebView;
  • диаграммы – BarChart, PieChart;
  • шрифты;
  • эффекты;
  • анимацию.

Модули, классы и иные компоненты платформы подробно описаны в документации. Она создана на английском языке.

Дополнительные библиотеки и фреймворки

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

Наиболее распространенными дополнительными инструментами являются:

  1. Ikonli – библиотека, включающая в свой состав разнообразные пакеты для создания кастомных иконок.
  2. Skija – используется для обеспечения Java-биндингов для Skia (так называется OpenSource библиотека для насыщенной 2D-графики). Библиотека, предоставляющая программисту надежные и высокопроизводительные инструменты разработки. Включает в себя работы с цветовыми пространствами, современной типографией, оптимизированный GPU-рендеринг.
  3. JacpFX – пакет, помогающий писать насыщенные текстовые редакторы С его помощью поддерживается создание кодовых редакторов с выделением синтаксических компонентов. Библиотека позволяет работать со шрифтами.
  4. MigLayout – open-source проект, используемый для написания макетов и их последующим манипулированием. Через этот инструмент удается формировать лаконичные и понятные коды, при помощи которых любой сможет сложить четкое представление о макете.

Через GitHub-репозиторий jjenkov программисты смогут обнаружить большое количество демо-приложений Java, написанных при помощи The JavaFX. С их помощью осуществляется демонстрация различных компонентов изучаемого фреймворка.

Области применения

В разработке изучаемая платформа широко используется при создании десктопных приложений. Она пригодится разработчикам, которые пишут:

  • разнообразные редакторы – текста и графики;
  • IDE;
  • проигрыватели и программы редактирования аудио и видео файлов;
  • игровое программное обеспечение.

Платформа активно используется при разработке мобильных и веб-приложений (WhatsApp, Skype, Telegram). Данный инструмент преобразовывает код в нативные образы и используется в гаджетах. Его задействуют в некоторых встроенных систем. Пример – Raspberry Pi.

Отличие от Swing

Swing – устаревший инструмент для GUI-разработки. На смену пришел The JavaFX. Новая платформа отличается от предыдущей:

The JavaFXSwing
Используется для насыщенных пользовательских приложений. Проекты будут включать в себя современный интерфейсРаботает со стандартным GUI
Поддерживает чистый кодИмеет множество устаревших компонентов
Встроенная поддержка MVCНе обладает поддержкой MVC «по умолчанию»
Активно обновляется и дорабатываетсяНовые опции в Swing не добавляются
Умеет работать с CSSФормирование стилей осуществляется только за счет кодовых возможностей
Предусматривает API для работы с многопоточностьюAPI для многопоточности отсутствует
Поддерживает 3D-графику «по умолчанию»Для работы с 3D требует дополнительные API
Предлагает привязку устройствНе имеет привязки устройств

Стоит обратить внимание на то, что с Java 11 рассмотренная платформа отсоединена от JDK. Swing до сих пор включен в него.