JavaFX | |
---|---|
Класс языка | язык программирования, декларативный язык программирования и компилируемый язык программирования |
Тип исполнения | сценарный |
Появился в | 2008 |
Разработчик | Sun Microsystems |
Выпуск | 1.2 (июнь 2, 2009 ) |
Испытал влияние | Java |
Лицензия | GPL |
Сайт | javafx.com |
Платформа | Java Runtime Environment |
ОС | Cross-platform |
JavaFX Script — сценарный язык программирования, разработанный компанией Sun Microsystems, и входящий в семейство технологий JavaFX на платформе Java.
Платформа JavaFX ориентирована на область насыщенных интернет-приложений (конкурируя с Adobe Flex и Microsoft Silverlight) и специализируется на быстрой разработке визуально насыщенных приложений для настольных компьютеров и мобильных устройств. JavaFX Script работает с интегрированными средами разработки, такими как NetBeans, Eclipse и IntelliJ IDEA[1]. Платформа JavaFX выпущена под лицензией GNU General Public License через спонсируемый компанией Sun проект OpenJFX.
JavaFX Script раньше назывался F3 (Form Follows Function). F3 изначально был разработан Крисом Оливером, который стал сотрудником Sun после приобретения SeeBeyond Technology Corporation в сентябре 2005 года. Его название было изменено на JavaFX Script, и его исходный код был открыт на ежегодной конференции JavaOne[англ.] в 2007.
JavaFX 1.0 был выпущен 4 декабря 2008 года[1]. 10 сентября 2010 года компания Oracle объявила на JavaOne, что JavaFX Script будет прекращен, хотя JavaFX API будет доступен для других языков для Java Virtual Machine[2].
27 сентября 2010 года Стивен Чин представил публике Visage как декларативный язык пользовательского интерфейса на основе JavaFX Script с улучшениями[3].
8 апреля 2012 года был создан проект с целью возрождения и улучшения оригинального языка программирования F3, но проект, по всей видимости, был прекращен в августе 2015 года[4].
JavaFX Script — компилируемый, статически типизированный, декларативный сценарный язык для платформы Java. Он обеспечивает автоматическую привязку данных, триггеры мутаций и декларативную анимацию, используя синтаксис языка выражений (все блоки кода потенциально возвращают значения).
С помощью своего стандартного API JavaFX он поддерживает векторную графику с сохранённым режимом, воспроизведением видео и стандартными компонентами Swing.
Хотя F3 был создан как интерпретируемый язык, но первый же предварительный выпуск (в III квартале 2008) JavaFX Script сместил фокус на преимущественно компилируемый. Интерпретируемый JavaFX Script всё ещё возможен через мост JSR 223 «Scripting for Java». Поскольку он построен поверх платформы Java, то в коде JavaFX Script легко использовать классы Java. Скомпилированный код JavaFX Script может работать на любой платформе, на которой установлена реализация виртуальной машины Java Java Runtime Environment.
Декларативный стиль JavaFX Script для построения пользовательских интерфейсов может обеспечить короткий и читаемый исходный код, чем более многословная серия вызовов методов, необходимая для построения эквивалентного интерфейса, если он написан в процедурном стиле JavaFX Script.
Вот простая программа Hello, world! на JavaFX Script:
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
Stage {
title: "Hello World"
width: 250
height: 80
scene: Scene {
content: Text {
font : Font {
size : 24
}
x: 10, y: 30
content: "Hello World"
}
}
}
Результат работы этой программы:
Эту же программу также можно написать на языке JavaFX Script в процедурном стиле следующим образом:
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
javafx.scene.text.Font".
var myFont:Font = Font.font(null, 24);
var myText:Text = new Text();
myText.font = myFont;
myText.x = 10;
myText.y = 30;
myText.content = "Hello World";
var myScene:Scene = new Scene();
myScene.content = myText;
var myStage:Stage = new Stage();
myStage.title = "Hello World";
myStage.width = 250;
myStage.height = 80;
myStage.scene = myScene;
{{citation}}
: |archive-date=
/ |archive-url=
несоответствие временной метки; предлагается 30 марта 2023 (справка)
{{citation}}
: |archive-date=
/ |archive-url=
несоответствие временной метки; предлагается 15 августа 2009 (справка){{citation}}
: |archive-date=
/ |archive-url=
несоответствие временной метки; предлагается 23 марта 2012 (справка)