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 относят следующие моменты:
- Поставка с достойным набором частей графического интерфейса. Разработчик сможет сразу работать с текстовыми полями, деревьями, меню, диаграммами, таблицами, кнопками и так далее.
- Совместимость с CSS-стилями. Допускается использование специального формата для создания GUI – FXML. Данный прием делает размещение пользовательского графического интерфейса, а также его изменение проще. Разработчику не потребуется долго разбираться в коде программы.
- Поддержка готовых к эксплуатации частей диаграмм. Опция полезна при создании базовых «графиков».
- Работа с 3D-графикой.
- Простое осваивание – изучить принципы работы The JavaFX и научиться создавать с его помощью программное обеспечение способен даже новичок.
- Регулярные обновления и OpenSource.
- Поддержка технологий нативных образов. С ее помощью разработчики смогут преобразовывать приложения 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;
- шрифты;
- эффекты;
- анимацию.
Модули, классы и иные компоненты платформы подробно описаны в документации. Она создана на английском языке.
Дополнительные библиотеки и фреймворки
Изучаемая платформа разработки поддерживает множество дополнительных компонентов и библиотек. Все они предназначаются для упрощения создания итогового приложения.
Наиболее распространенными дополнительными инструментами являются:
- Ikonli – библиотека, включающая в свой состав разнообразные пакеты для создания кастомных иконок.
- Skija – используется для обеспечения Java-биндингов для Skia (так называется OpenSource библиотека для насыщенной 2D-графики). Библиотека, предоставляющая программисту надежные и высокопроизводительные инструменты разработки. Включает в себя работы с цветовыми пространствами, современной типографией, оптимизированный GPU-рендеринг.
- JacpFX – пакет, помогающий писать насыщенные текстовые редакторы С его помощью поддерживается создание кодовых редакторов с выделением синтаксических компонентов. Библиотека позволяет работать со шрифтами.
- MigLayout – open-source проект, используемый для написания макетов и их последующим манипулированием. Через этот инструмент удается формировать лаконичные и понятные коды, при помощи которых любой сможет сложить четкое представление о макете.
Через GitHub-репозиторий jjenkov программисты смогут обнаружить большое количество демо-приложений Java, написанных при помощи The JavaFX. С их помощью осуществляется демонстрация различных компонентов изучаемого фреймворка.
Области применения
В разработке изучаемая платформа широко используется при создании десктопных приложений. Она пригодится разработчикам, которые пишут:
- разнообразные редакторы – текста и графики;
- IDE;
- проигрыватели и программы редактирования аудио и видео файлов;
- игровое программное обеспечение.
Платформа активно используется при разработке мобильных и веб-приложений (WhatsApp, Skype, Telegram). Данный инструмент преобразовывает код в нативные образы и используется в гаджетах. Его задействуют в некоторых встроенных систем. Пример – Raspberry Pi.
Отличие от Swing
Swing – устаревший инструмент для GUI-разработки. На смену пришел The JavaFX. Новая платформа отличается от предыдущей:
The JavaFX | Swing |
Используется для насыщенных пользовательских приложений. Проекты будут включать в себя современный интерфейс | Работает со стандартным GUI |
Поддерживает чистый код | Имеет множество устаревших компонентов |
Встроенная поддержка MVC | Не обладает поддержкой MVC «по умолчанию» |
Активно обновляется и дорабатывается | Новые опции в Swing не добавляются |
Умеет работать с CSS | Формирование стилей осуществляется только за счет кодовых возможностей |
Предусматривает API для работы с многопоточностью | API для многопоточности отсутствует |
Поддерживает 3D-графику «по умолчанию» | Для работы с 3D требует дополнительные API |
Предлагает привязку устройств | Не имеет привязки устройств |
Стоит обратить внимание на то, что с Java 11 рассмотренная платформа отсоединена от JDK. Swing до сих пор включен в него.