JavaFX - JavaFX

JavaFX
Логотип JavaFX.png
Разработчики) Sun Microsystems (теперь приобретена Oracle Corporation )
Первый выпуск 4 декабря 2008 г . ; 12 лет назад  ( 2008-12-04 )
Стабильный выпуск
16 марта 2021 г . ; 2 месяца назад  ( 2021-03 )
Репозиторий Отредактируйте это в Викиданных
Операционная система Среда выполнения Java
Платформа Кроссплатформенность
Доступно в Ява
Тип Фреймворк приложения
Лицензия GPL + исключение связи , открытый исходный код
Веб-сайт wiki .openjdk .java .net / display / OpenJFX / Main и openjfx .io

JavaFX - это программная платформа для создания и доставки настольных приложений , а также многофункциональных веб-приложений, которые могут работать на самых разных устройствах. JavaFX поддерживает настольные компьютеры и веб-браузеры в Microsoft Windows , Linux и macOS , а также мобильные устройства под управлением iOS и Android .

На настольных компьютерах JavaFX поддерживает операционные системы Windows Vista , Windows 7 , Windows 8 , Windows 10 , macOS и Linux . Начиная с JavaFX 1.2, Oracle выпустила бета-версии для OpenSolaris . На мобильных устройствах JavaFX Mobile 1.x может работать в нескольких мобильных операционных системах , включая Symbian OS , Windows Mobile и проприетарные операционные системы реального времени .

JavaFX был предназначен для замены Swing в качестве стандартной библиотеки графического интерфейса для Java SE , но он был исключен из новых Standard Editions, в то время как Swing и AWT остались включенными, предположительно из-за того, что рыночная доля JavaFX была «подорвана ростом популярности мобильных устройств в первую очередь» и «Интернета». первые приложения ". С выпуском JDK 11 в 2018 году Oracle сделала JavaFX частью OpenJDK в рамках проекта OpenJFX , чтобы ускорить темпы его разработки. Поддержка Oracle для JavaFX также доступна для Java JDK 8 до марта 2025 года.

JavaFXPorts с открытым исходным кодом работает для iOS (iPhone и iPad) и Android и встроен ( Raspberry Pi ); и соответствующее коммерческое программное обеспечение, созданное под названием «Gluon», поддерживает те же мобильные платформы с дополнительными функциями плюс рабочий стол. Это позволяет из единой базы исходного кода создавать приложения для настольных компьютеров, устройств iOS и Android.

Функции

JavaFX 1.1 был основан на концепции «общего профиля», который предназначен для охвата всех устройств, поддерживаемых JavaFX. Такой подход позволяет разработчикам использовать общую модель программирования при создании приложения, предназначенного как для настольных, так и для мобильных устройств, и совместно использовать большую часть кода, графических ресурсов и контента между настольной и мобильной версиями. Чтобы удовлетворить потребность в настройке приложений для определенного класса устройств, платформа JavaFX 1.1 включает API-интерфейсы , предназначенные для настольных компьютеров или мобильных устройств. Например, профиль JavaFX Desktop включает Swing и расширенные визуальные эффекты.

Для конечных пользователей функция «Перетащить для установки» позволяет им перетащить виджет JavaFX - приложение, находящееся на веб-сайте, - и поместить его на свой рабочий стол. Приложение не потеряет свое состояние или контекст даже после закрытия браузера. Приложение также можно повторно запустить, щелкнув ярлык, который автоматически создается на рабочем столе пользователя. Это поведение включено из коробки механизмом Java-апплетов с момента обновления Java 6u10 и используется JavaFX из нижележащего уровня Java. Sun рекламирует «Drag-to-Install» как открытие новой модели распространения и позволяющее разработчикам «оторваться от браузера».

JavaFX 1.x включает набор подключаемых модулей для Adobe Photoshop и Illustrator, которые позволяют интегрировать расширенную графику непосредственно в приложения JavaFX. Плагины генерируют код JavaFX Script, который сохраняет слои и структуру графики. Затем разработчики могут добавлять анимацию или эффекты к импортированной статической графике. Существует также инструмент для преобразования графики SVG (также известный как Media Factory), который позволяет импортировать графику и предварительно просматривать ресурсы после преобразования в формат JavaFX.

До версии 2.0 JavaFX разработчики использовали статически типизированный декларативный язык под названием JavaFX Script для создания приложений JavaFX. Поскольку сценарий JavaFX был скомпилирован в байт-код Java , программисты также могли использовать вместо него код Java . Приложения JavaFX могут работать на любом рабочем столе, на котором может быть запущена Java SE, или на любом мобильном телефоне, который может запускать Java ME .

JavaFX 2.0 и более поздние версии реализованы как «родная» библиотека Java, а приложения, использующие JavaFX, написаны на «родном» коде Java. Сценарий JavaFX был отменен Oracle, но разработка продолжается в проекте Visage. JavaFX 2.x не поддерживает операционную систему Solaris и мобильные телефоны ; однако Oracle планирует интегрировать JavaFX в Java SE Embedded 8, а Java FX для процессоров ARM находится на этапе предварительной версии для разработчиков.

Sun Microsystems лицензировала специальный шрифт Amble для использования на устройствах на базе JavaFX. Семейство шрифтов было разработано специалистами по дизайну мобильного пользовательского интерфейса Punchcut и доступно как часть JavaFX SDK 1.3 Release.

WebView

WebView, встроенный компонент браузера, поддерживает следующие функции HTML5:

  • Холст
  • Воспроизведение медиа
  • Элементы управления формы (кроме <input type = "color">)
  • Редактируемый контент
  • Ведение истории
  • Поддержка тегов <meter> и <progress>
  • Поддержка тегов <details> и <summary>
  • ДОМ
  • MathML
  • SVG
  • CSS
  • JavaScript
  • Поддержка доменных имен, написанных на национальных языках

JavaFX Mobile

JavaFX Mobile была реализацией платформы JavaFX для многофункциональных веб-приложений, предназначенных для мобильных устройств . Приложения JavaFX Mobile 1.x могут разрабатываться на том же языке, JavaFX Script , что и приложения JavaFX 1.x для браузера или рабочего стола, и с использованием тех же инструментов: JavaFX SDK и JavaFX Production Suite. Эта концепция позволяет совместно использовать кодовую базу и графические ресурсы для настольных и мобильных приложений. Благодаря интеграции с Java ME приложения JavaFX получают доступ к возможностям основного телефона, таким как файловая система , камера, GPS , Bluetooth или акселерометр .

Независимая платформа приложений, построенная на Java, JavaFX Mobile может работать в нескольких мобильных операционных системах, включая Android , Windows Mobile и проприетарные операционные системы реального времени .

JavaFX Mobile была общедоступна как часть выпуска JavaFX 1.1, объявленного Sun Microsystems 12 февраля 2009 года.

Sun планировала включить поддержку JavaFX «из коробки» на устройствах, работая с производителями мобильных телефонов и операторами мобильной связи, чтобы предварительно загрузить среду выполнения JavaFX Mobile на телефоны. JavaFX Mobile, работающий на Android, был продемонстрирован на JavaOne 2008, а некоторые партнерские отношения (включая LG Electronics , Sony Ericsson ) были объявлены при запуске JavaFX Mobile в феврале 2009 года.

Составные части

Платформа JavaFX 2.x включает в себя следующие компоненты:

  • JavaFX SDK : инструменты времени выполнения. Графика, мультимедийные веб-службы и библиотеки форматированного текста. Java FX 1.x также включал компилятор JavaFX, который теперь устарел, поскольку пользовательский код JavaFX написан на Java.
  • IDE NetBeans для JavaFX: NetBeans с палитрой перетаскивания для добавления объектов с преобразованиями, эффектами и анимацией, а также набором примеров и передовых методов. Для поддержки JavaFX 2 вам потребуется как минимум NetBeans 7.1.1. Для пользователей Eclipse существует поддерживаемый сообществом плагин, размещенный на e (fx) clipse.
  • Конструктор сцен JavaFX: он был представлен для Java FX 2.1 и более поздних версий. Пользовательский интерфейс (UI) создается путем перетаскивания элементов управления из палитры. Эта информация сохраняется как файл FXML, специальный формат XML.
  • Инструменты и плагины для творческих инструментов (также известных как Production Suite): плагины для Adobe Photoshop и Adobe Illustrator, которые могут экспортировать графические ресурсы в код JavaFX Script , инструменты для преобразования графики SVG в код JavaFX Script и предварительный просмотр ресурсов, преобразованных в JavaFX из других инструментов (в настоящее время не поддерживается в версиях JavaFX 2.x)

История

Ранние релизы

JavaFX Script, компонент сценариев JavaFX, начал свою жизнь как проект Криса Оливера под названием F3.

Sun Microsystems впервые анонсировала JavaFX на конференции JavaOne Worldwide Java Developer в мае 2007 года.

В мае 2008 года Sun Microsystems объявила о планах по доставке JavaFX для браузеров и настольных компьютеров к третьему кварталу 2008 года и JavaFX для мобильных устройств во втором квартале 2009 года. Sun также объявила о многолетнем соглашении с On2 Technologies о расширении возможностей видео. для семейства продуктов JavaFX с помощью компании TrueMotion видеокодек . С конца июля 2008 года разработчики могут загрузить предварительную версию JavaFX SDK для Windows и Macintosh, а также подключаемый модуль JavaFX для NetBeans 6.1 .

Основные выпуски, начиная с JavaFX 1.1, имеют название выпуска, основанное на улице или районе Сан-Франциско . У выпусков обновлений обычно нет названия.

4 декабря 2008 г. Sun выпустила JavaFX 1.0.2.

JavaFX для мобильной разработки, наконец, стал доступен как часть выпуска JavaFX 1.1 (названного Franca), официально анонсированного 12 февраля 2009 года.

JavaFX 1.2 (названный Marina) был выпущен на JavaOne 2 июня 2009 г. В этом выпуске представлены:

JavaFX 1.3 (названный Soma) был выпущен 22 апреля 2010 г. В этом выпуске представлены:

  • Улучшения производительности
  • Поддержка дополнительных платформ
  • Улучшенная поддержка элементов управления пользовательского интерфейса.

JavaFX 1.3.1 был выпущен 21 августа 2010 г. В этом выпуске представлены:

  • Быстрый запуск приложения JavaFX
  • Пользовательский индикатор выполнения для запуска приложения

JavaFX 2.0 (названный Presidio) был выпущен 10 октября 2011 года. В этом выпуске представлены:

  • Новый набор API-интерфейсов Java, открывающий возможности JavaFX для всех разработчиков Java, при этом им не нужно изучать новый язык сценариев. Поддержка Java FX Script была окончательно прекращена.
  • Поддержка высокопроизводительного отложенного связывания, выражений связывания, выражений связанных последовательностей и повторной оценки частичного связывания.
  • Прекращение поддержки JavaFX Mobile .
  • Oracle объявляет о своем намерении создать JavaFX с открытым исходным кодом.
  • Среда выполнения JavaFX становится зависящей от платформы, используя возможности системы, так как видеокодек доступен в системе; вместо реализации только одной кроссплатформенной среды выполнения, как в JavaFX 1.x.

В библиотеки JavaFX для многопоточности были внесены различные улучшения. API-интерфейсы задач были обновлены для поддержки гораздо более лаконичных возможностей потоковой передачи (т. Е. Класс JavaTaskBase больше не нужен, поскольку все API-интерфейсы находятся на Java, и требование иметь интерфейс обратного вызова и класс реализации Java больше не нужны). Кроме того, граф сцены был разработан, чтобы позволить сценам быть построенными на фоновых потоках, а затем присоединяться к «живым» сценам потокобезопасным способом.

26 мая 2011 года Oracle выпустила бета-версию JavaFX 2.0. Бета-версия была доступна только для 32- и 64-разрядных версий Microsoft Windows XP, Windows Vista и Windows 7. Версия раннего доступа для Mac OS X также была доступна для участников партнерской программы JavaFX в то время, в то время как поддержка Linux была планируется для будущего выпуска JavaFX. JavaFX 2.0 был выпущен с поддержкой только Windows. Поддержка Mac OS X была добавлена ​​с JavaFX 2.1. Поддержка Linux была добавлена ​​с JavaFX 2.2.

JavaFX 2.0 использует новый декларативный язык XML под названием FXML .

27 апреля 2012 года Oracle выпустила версию JavaFX 2.1, которая включает следующие основные функции:

  • Первая официальная версия для OS X (только для ПК)
  • Поддержка H.264 / MPEG-4 AVC и Advanced Audio Coding
  • CoolType текст
  • Улучшения пользовательского интерфейса, включая элементы управления полем со списком, диаграммы (диаграмма с накоплением) и строки меню.
  • Компонент Webview теперь позволяет JavaScript выполнять вызовы методов Java.

14 августа 2012 года Oracle выпустила версию 2.2 JavaFX, которая включает следующие основные функции:

  • Поддержка Linux (включая плагин и веб-запуск)
  • Холст
  • Новые элементы управления: палитра цветов, разбивка на страницы.
  • Поддержка HTTP Live Streaming
  • Сенсорные события и жесты
  • API для обработки изображений
  • Родная упаковка

JavaFX 2.2 добавляет новую опцию упаковки под названием Native Packaging, позволяющую упаковывать приложение как «собственный комплект». Это дает пользователям возможность установить и запустить приложение без каких-либо внешних зависимостей от системной JRE или FX SDK.

Начиная с обновления 6 Oracle Java SE 7 и Java FX 2.2, JavaFX входит в комплект для установки с платформой Oracle Java SE.

Выпуски после повышения версии

JavaFX теперь является частью JRE / JDK для Java 8 (выпущен 18 марта 2014 г.) и имеет ту же нумерацию, то есть JavaFX 8.

JavaFX 8 добавляет несколько новых функций, в том числе:

  • Поддержка 3D графики
  • Поддержка датчика
  • Поддержка MathML с JavaFX 8 (обновление 192)
  • Поддержка печати и форматированного текста
  • Общие шаблоны диалогов с включением ControlsFX для замены JOptionPane начиная с JavaFX 8u40

Функции JavaFX 9 были сосредоточены на извлечении некоторых полезных частных API из кода JavaFX, чтобы сделать эти API общедоступными:

  • JEP 253: Подготовка элементов управления пользовательского интерфейса JavaFX и API-интерфейсов CSS для модуляции

Oracle объявила о своем намерении прекратить поставки JavaFX с JDK 11 и более поздними версиями . Он больше не входит в комплект с последней версией.

JavaFX 11 впервые был отправлен в сентябре 2018 года.

  • JavaFX 11.0.2 - это последняя общедоступная версия JavaFX 11.
  • JavaFX 11.0.3 - это последняя версия JavaFX 11 для тех, у кого есть долгосрочный контракт на поддержку.
  • Поддержка MathML с JavaFX 11
  • FX Robot API

JavaFX 12 впервые был отправлен в марте 2019 года.

  • JavaFX 12.0.1.

JavaFX 13 выпущен в сентябре 2019 года.

JavaFX 14 был выпущен в марте 2020 года.

JavaFX 15 был выпущен в сентябре 2020 года.

JavaFX 16 - последняя версия, выпущенная в марте 2021 года.

Будущая работа

Oracle также объявила в ноябре 2012 года об открытом исходном коде Decora, языка шейдеров DSL для JavaFX, позволяющего создавать шейдеры для OpenGL и Direct3D .

Oracle написала в своей дорожной карте поддержки клиентов, что новые исправления JavaFX будут по-прежнему поддерживаться в Java SE 8 до марта 2025 года. Ранее Oracle объявила, что они «работают с заинтересованными третьими сторонами, чтобы упростить создание и поддержку JavaFX как отдельно распространяемого продукта. модуль с открытым исходным кодом ". Компания Gluon продолжит поддерживать JavaFX в будущем в качестве загружаемого модуля в дополнение к JDK.

Доступность

По состоянию на март 2014 года JavaFX развернут в Microsoft Windows , OS X и Linux . Oracle имеет внутренний порт JavaFX на iOS и Android . Поддержка ARM доступна начиная с JavaFX 8 11 февраля 2013 г. Ричард Бэр, главный архитектор клиентской платформы Java в Oracle, объявил, что Oracle откроет исходный код для реализации iOS и Android своей платформы JavaFX в следующие два месяца.

Начиная с версии 8u33 JDK для ARM, поддержка JavaFX Embedded была удалена.

Поддержка архитектур на базе x86 будет продолжена.

Коммерческий порт JavaFX для Android и iOS был создан под названием «Gluon».

Лицензия

Существуют различные лицензии для модулей, составляющих среду выполнения JavaFX:

В ходе разработки Sun объяснила, что они развернут свою стратегию модели лицензирования JavaFX для первого выпуска JavaFX. После выпуска в 2008 году Джит Каул , вице-президент Sun по клиентскому программному обеспечению, объяснил, что вскоре они опубликуют спецификацию для JavaFX и связанных с ним форматов файлов , и продолжат открывать исходный код среды выполнения JavaFX и отделить это ядро ​​от проприетарного. запчасти лицензированы сторонними организациями.

На JavaOne 2011 корпорация Oracle объявила, что JavaFX 2.0 станет открытым исходным кодом. С декабря 2011 года Oracle начала открывать исходный код для кода JavaFX в рамках исключения связи GPL + .

В декабре 2012 года новые части исходного кода JavaFX были открыты Oracle:

  • классы анимации и шкалы времени
  • механизм доставки событий и другие различные основные классы
  • интерфейс дерева рендеринга и реализация этого интерфейса
  • реализация геометрии и форм
  • Java-часть движка рендеринга, используемая в конвейере рендеринга
  • поддержка регистрации

Смотрите также

Рекомендации

Библиография

Внешние ссылки