<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>LXF120:JavaFX - История изменений</title>
		<link>http://wiki2.linuxformat.ru/index.php?title=LXF120:JavaFX&amp;action=history</link>
		<description>История изменений этой страницы в вики</description>
		<language>ru</language>
		<generator>MediaWiki 1.11.1</generator>
		<lastBuildDate>Wed, 13 May 2026 23:34:11 GMT</lastBuildDate>
		<item>
			<title>Crazy Rebel: /* Работа с текстом */</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF120:JavaFX&amp;diff=10378&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Работа с текстом&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 10:28, 15 июня 2010&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 156:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 156:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Врезка|Содержание=[[Изображение:LXF120_78_2.jpg|&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;300px&lt;/del&gt;]] Рис. 5. Расшифровка терминов средствами ''JavaFX'' выполняется не хуже, чем в настоящем электронном словаре|Ширина=&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;300px&lt;/del&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Врезка|Содержание=[[Изображение:LXF120_78_2.jpg|&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;200px&lt;/ins&gt;]] Рис. 5. Расшифровка терминов средствами ''JavaFX'' выполняется не хуже, чем в настоящем электронном словаре|Ширина=&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;200px&lt;/ins&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Основными атрибутами для объекта '''Text''' являются его положение '''x, y''' и содержание '''content'''. С помощью атрибута '''font''' можно в значительной степени повлиять на внешний вид текста. Объект '''Font''' определяет характеристики надписи: размер шрифта '''size''', начертание '''oblique''' (наклонное), цвет заливки '''fill''', имя гарнитуры '''name''' и так далее.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Основными атрибутами для объекта '''Text''' являются его положение '''x, y''' и содержание '''content'''. С помощью атрибута '''font''' можно в значительной степени повлиять на внешний вид текста. Объект '''Font''' определяет характеристики надписи: размер шрифта '''size''', начертание '''oblique''' (наклонное), цвет заливки '''fill''', имя гарнитуры '''name''' и так далее.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 15 Jun 2010 10:28:11 GMT</pubDate>			<dc:creator>Crazy Rebel</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF120:JavaFX</comments>		</item>
		<item>
			<title>Crazy Rebel: /* Графические примитивы */</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF120:JavaFX&amp;diff=10377&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Графические примитивы&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 10:27, 15 июня 2010&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 89:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 89:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;объекты '''Node. Group''' предоставляет специальный атрибут – последовательность '''content''', предназначенный, как и у '''Scene''', для хранения  '''Node'''-объектов.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;объекты '''Node. Group''' предоставляет специальный атрибут – последовательность '''content''', предназначенный, как и у '''Scene''', для хранения  '''Node'''-объектов.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Врезка|Содержание=[[Изображение:LXF120_77_2.jpg|&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;300px&lt;/del&gt;]] Рис. 3. Наша «почти кнопка» на самом деле собрана из двух примитиво|Ширина=&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;300px&lt;/del&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Врезка|Содержание=[[Изображение:LXF120_77_2.jpg|&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;150px&lt;/ins&gt;]] Рис. 3. Наша «почти кнопка» на самом деле собрана из двух примитиво|Ширина=&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;150px&lt;/ins&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;В качестве примера рассмотрим создание несложной картинки, представленной на рис. 3. Для отрисовки такого изображения необходимо два элемента: это прямоугольник с закругленными краями ('''Rectangle''') и текст ('''Text'''). Несколько забегая вперед, отметим, что текст выводится с помощью объекта&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;В качестве примера рассмотрим создание несложной картинки, представленной на рис. 3. Для отрисовки такого изображения необходимо два элемента: это прямоугольник с закругленными краями ('''Rectangle''') и текст ('''Text'''). Несколько забегая вперед, отметим, что текст выводится с помощью объекта&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 15 Jun 2010 10:27:50 GMT</pubDate>			<dc:creator>Crazy Rebel</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF120:JavaFX</comments>		</item>
		<item>
			<title>Crazy Rebel: викификация, оформление, иллюстрация</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF120:JavaFX&amp;diff=10371&amp;oldid=prev</link>
			<description>&lt;p&gt;викификация, оформление, иллюстрация&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;: '''''JavaFX''''' Создавайте продвинутые интернет-приложения (и не только) без лишних усилий&lt;br /&gt;
&lt;br /&gt;
==''JavaFX'': Добавим красок==&lt;br /&gt;
&lt;br /&gt;
{{Цикл/JavaFX}}&lt;br /&gt;
&lt;br /&gt;
: '''Часть 2''': На одном только языке далеко не уедешь. '''Антон Черноусов''' познакомит вас с объектами, из которых строятся настоящие приложения с графическим интерфейсом.&lt;br /&gt;
&lt;br /&gt;
На предыдущем уроке мы подробно рассмотрели базовые механизмы языка сценариев ''JavaFX Script'', а сегодня сосредоточимся на возможностях ''JavaFX'' в области создания графического интерфейса пользователя. После прочтения этой статьи вы разберетесь с объектами-примитивами и применением эффектов, а также, в заключение, узнаете про обработку событий, генерируемых пользователем.&lt;br /&gt;
&lt;br /&gt;
Мы не будем приводить полные исходные тексты учебных примеров, ограничившись лишь интересующими нас частями. Как и в прошлый раз, вы сможете найти все обсуждаемые программы на '''LFXDVD''': советую вам прямо сейчас распаковать архив с диска, чтобы было удобнее следить за мыслью. Готовы? Тогда приступим.&lt;br /&gt;
&lt;br /&gt;
===Stage — основа GUI===&lt;br /&gt;
&lt;br /&gt;
Главный объект, с которого начинается создание пользовательского интерфейса – это Stage. Для работы с ним в вашем сценарии ''JavaFX Script'' необходимо подключить библиотеку '''javafx.stage''' с помощью ключевого слова ''import'' сразу после объявления пакета – например, так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=java&amp;gt;&lt;br /&gt;
 package ru.golodnyj.lxf.fx;&lt;br /&gt;
 import javafx.stage.*;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вы можете подключить как весь пакет с помощью символа '''*''', так и отдельные классы – указанием их канонического имени, скажем, '''javafx.stage.Stage'''. Следующий простой сценарий (файл '''FirstStage.fx''' в примерах на диске) создает пустое окно приложения и выводит его в конкретную позицию на экране:&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF120_76_1.jpg|300px]] Рис. 1. Работа со свойством '''opacity''' у объекта '''Stage'''.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=java&amp;gt;&lt;br /&gt;
 Stage {&lt;br /&gt;
        title: “This is Stage”&lt;br /&gt;
        x : 100 // Start point to Stage&lt;br /&gt;
        y : 200&lt;br /&gt;
        width: 300 // The width and height&lt;br /&gt;
        height: 400&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В этом листинге при создании объекта '''Stage''' устанавливается заголовок '''title''', позиции по горизонтали и вертикали '''x, y''', а также ширина и высота '''width, height'''.&lt;br /&gt;
&lt;br /&gt;
Однако при таком задании параметров главного окна программы будет невозможно обратиться к его свойствам во время выполнения приложения. Для решения этой проблемы достаточно присвоить объект '''Stage''' некой переменной, как, например, это сделано в сценарии '''OpacityStage.fx''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=java&amp;gt;&lt;br /&gt;
 var s : Stage = Stage {...}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
API объекта '''Stage''' достаточно скуден по своим возможностям, но, внимательно изучив его (документацию на английском языке можно найти по адресу http://java.sun.com/javafx/1/docs/api), легко обнаружить замечательное свойство '''opacity''', которое варьируется в пределах от 0.0 до 1.0 и задает прозрачность окна. Например, значение '''opacity''', равное 0.5, создает приятный полупрозрачный эффект, который можно видеть на '''рис. 1'''. К сожалению, возможности загрузить API для локального просмотра нет, и мне кажется, что с точки зрения ''Java''-разработчика новый способ представления документации значительно уступает проверенному временем ''JavaDoc''.&lt;br /&gt;
&lt;br /&gt;
При загрузке приложения можно выполнить некоторые подготовительные операции и лишь потом отобразить интерфейс. В этом вам поможет свойство '''visible''' объекта '''Stage''', делающее его видимым или невидимым.&lt;br /&gt;
&lt;br /&gt;
===Графические примитивы===&lt;br /&gt;
&lt;br /&gt;
Безусловно, само по себе  пустое окно никому не интересно. Фактически, все компоненты пользовательского интерфейса в ''JavaFX''  представляют из себя&lt;br /&gt;
«узлы» – Node, то есть являются некоторым расширением класса '''javafx.scene.Node'''. Существует несколько типов узлов:&lt;br /&gt;
* примитивы;&lt;br /&gt;
* текст;&lt;br /&gt;
* изображения;&lt;br /&gt;
* медиа-контент;&lt;br /&gt;
* Swing-компоненты.&lt;br /&gt;
&lt;br /&gt;
Узлы размещаются в корневой области, которая называется «сценой» и представлена объектом '''Scene'''. Объект '''Scene''' содержит переменную&lt;br /&gt;
'''content''', в которую и помещаются узлы, как, например, в сценарии '''FirstScene.fx''':&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF120_77_1.jpg|300px]] Рис. 2. Различные типы узлов, созданные нами в сценарии '''FirstScene.fx'''.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=java&amp;gt;&lt;br /&gt;
 var scane1 : Scene = Scene {&lt;br /&gt;
            content: [a, b, c]&lt;br /&gt;
             }&lt;br /&gt;
 var s : Stage = Stage {&lt;br /&gt;
        scene: scane1&lt;br /&gt;
        … }&lt;br /&gt;
 function run(){&lt;br /&gt;
          println(“Start the App”);&lt;br /&gt;
          s.visible = true; // make the Stage visible&lt;br /&gt;
          s.toFront();&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат работы программы можно видеть на рис. 2. В '''FirstScene.fx''' создаются&lt;br /&gt;
три графических объекта '''a, b''' и '''c''': это прямоугольник ('''Rectangle'''), окружность&lt;br /&gt;
('''Circle''') и дуга ('''Arc'''). Все три наших объекта унаследованы от '''Node''' и являются графическими примитивами. Для работы&lt;br /&gt;
с ними необходимо подключить пакет '''javafx.scene.shape.*''';.&lt;br /&gt;
&lt;br /&gt;
Пакет '''shape''' содержит всевозможные графические  примитивы, каждый из которых имеет очень богатый API. Например, если мы рассмотрим уже созданный&lt;br /&gt;
нами объект '''Arc''', то среди его атрибутов можно найти  поле '''type''', которое определяет внешний вид примитива и может принимать три различных значения: &lt;br /&gt;
* '''ArcType.ROUND''' – окружность с центральным углом как на рисунке 2 (по-моему, здесь есть что-то знакомое... да это же Пэкмен!);&lt;br /&gt;
* '''ArcType.CHORD''' – вместо «скушанного» сектора будет хорда; &lt;br /&gt;
* '''ArcType.OPEN''' – выглядит как '''ArcType.CHORD''', но без линии хорды, соединяющей края центрального угла.&lt;br /&gt;
&lt;br /&gt;
Конечно, создавать отдельные фигуры хорошо, но гораздо удобнее использовать их в совокупности и управлять ими как группой элементов: в ''JavaFX'' предусмотрен и такой сценарий.  Существует специальный  объект '''Group''', который является узлом и позволяет хранить в себе другие&lt;br /&gt;
объекты '''Node. Group''' предоставляет специальный атрибут – последовательность '''content''', предназначенный, как и у '''Scene''', для хранения  '''Node'''-объектов.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF120_77_2.jpg|300px]] Рис. 3. Наша «почти кнопка» на самом деле собрана из двух примитиво|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
В качестве примера рассмотрим создание несложной картинки, представленной на рис. 3. Для отрисовки такого изображения необходимо два элемента: это прямоугольник с закругленными краями ('''Rectangle''') и текст ('''Text'''). Несколько забегая вперед, отметим, что текст выводится с помощью объекта&lt;br /&gt;
'''Text''', который также является наследником '''Node'''. Как видно из приведенного ниже кода '''FirstGroup.fx, Node'''-объекты перечисляются через&lt;br /&gt;
запятую, то есть заносятся в последовательность '''content''', а доступ к ним можно получить через переменную '''d'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=java&amp;gt;&lt;br /&gt;
 var d: Group = Group {&lt;br /&gt;
      content: [&lt;br /&gt;
        Rectangle {&lt;br /&gt;
           x: 30; y: 15; width: 150; height: 20;&lt;br /&gt;
           arcWidth: 20; arcHeight: 20; stroke: Color.GRAY;&lt;br /&gt;
           fill: LinearGradient {&lt;br /&gt;
               startX: 0.0, startY: 0.0, endX: 0.0, endY: 1.0, proportional: true&lt;br /&gt;
               stops: [&lt;br /&gt;
                   Stop {offset: 0.0 color: Color.WHITE},&lt;br /&gt;
                   Stop {offset: 1.0 color: Color.GRAY}&lt;br /&gt;
               ]}},&lt;br /&gt;
       Text {…}]}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Градиенты===&lt;br /&gt;
&lt;br /&gt;
Наибольший  интерес в приведенном выше фрагменте представляет свойство '''fill''' (заливка), а точнее, использованный для нее объект '''LinearGradient''', который (кто бы мог подумать?) представляет собой линейный градиент. Переменные объекта '''LinearGradient''':&lt;br /&gt;
'''startX, startY, endX''' и '''endY''' определяют координаты начальной и конечной точек градиента, и таким образом задают его направление и размер&lt;br /&gt;
охватываемой им области. Градиент можно размещать в любом направлении. &lt;br /&gt;
&lt;br /&gt;
Хитрая переменная '''proportional''' при установке ее значения  в '''true''' масштабирует переменные '''startX, startY, endX''' и '''endY''' относительно объекта, на который накладывается градиент (при этом значения координат должны находиться в диапазоне от 0,0 до 1,0). При установке&lt;br /&gt;
'''proportional''' в '''false''' величины '''startX, startY, endX''' и''' endY''' имеют смысл абсолютных значений в пикселях. &lt;br /&gt;
&lt;br /&gt;
Последовательность '''stops''' – это совокупность объектов '''Stop''' (опорных точек), задающих распределение цветов вдоль градиента. Таких точек&lt;br /&gt;
может быть больше двух. Поле '''offset''' объекта '''top'''  определяет точку, где градиент будет иметь некий заданный цвет, как число в диапазоне&lt;br /&gt;
от 0,0 до 1,0 (то есть в долях от протяженности градиента). Цвет точек градиента определяется значением атрибута '''color'''. Кроме предопределенных цветов, можно задать свой оттенок в стандартной шестнадцатеричной нотации – это делается с помощью метода web объекта '''Color''', как в примере ниже:&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF120_78_1.jpg|300px]] Рис. 4. Варианты радиальной заливки: без повторения (слева), стандартная периодическая (справа) и зеркальная (на переднем плане).|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=java&amp;gt;&lt;br /&gt;
 stops: [&lt;br /&gt;
   Stop {offset: 0.0 color: Color.WHITE},&lt;br /&gt;
   Stop {offset: 0.5 color: Color.DARKBLUE},&lt;br /&gt;
   Stop {offset: 1.0 color: Color.web(«#ffffff»)}&lt;br /&gt;
 ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Фактически существует три вида градиентов: '''Solid''' (сплошная заливка одним цветом), '''LinearGradient''' (линейный) и '''RadialGradient''' (радиальный). У последних двух типов есть возможность указать периодичность заливки с помощью свойства '''cycleMethod''': без повторения ('''CycleMethod.NO_CYCLE'''), прямой цикл градиента ('''CycleMethod.REPEAT'''), прямой-обратный ('''CycleMethod.REFLECT'''). Какой смысл скрывается за этими значениями, можно видеть на рис. 4.&lt;br /&gt;
&lt;br /&gt;
===Работа с текстом===&lt;br /&gt;
&lt;br /&gt;
В целом, графических возможностей ''JavaFX'' с лихвой хватает для реализации любого способа представления информации, но вернемся к отображению текста. Как уже было отмечено ранее, '''Text''' – это объект типа '''Node''', что позволяет работать с ним так же, как и с другими графическими объектами. Однако работу с его содержимым (то есть собственно текстом – буквами, знаками препинания и так далее) иногда следует отделять от отображения, что демонстрируется в сценарии '''TextEffect.fx''' и на рис. 5 (определение графа любезно предоставлено Википедией: http://ru.wikipedia.org):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=java&amp;gt;&lt;br /&gt;
 var text = «В математической теории графов и информатике\n граф –»;&lt;br /&gt;
 Stage {&lt;br /&gt;
    title: “TextEffect.fx” width: 200 height: 230 visible: true&lt;br /&gt;
    scene: Scene{&lt;br /&gt;
      fill: Color.WHITE&lt;br /&gt;
       content:[&lt;br /&gt;
          VBox{ spacing: 10 content:[&lt;br /&gt;
             Text{y: 35 x: 10 content: “Граф” font: Font{size: 30}},&lt;br /&gt;
             Text{y: 15 x: 10 content: text font: Font{oblique: true}},&lt;br /&gt;
             Text{y: 5 x: 30 content:&lt;br /&gt;
                “это совокупность объектов со связями между ними.” fill: Color.GREEN},&lt;br /&gt;
             ]}&lt;br /&gt;
          ]}&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF120_78_2.jpg|300px]] Рис. 5. Расшифровка терминов средствами ''JavaFX'' выполняется не хуже, чем в настоящем электронном словаре|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Основными атрибутами для объекта '''Text''' являются его положение '''x, y''' и содержание '''content'''. С помощью атрибута '''font''' можно в значительной степени повлиять на внешний вид текста. Объект '''Font''' определяет характеристики надписи: размер шрифта '''size''', начертание '''oblique''' (наклонное), цвет заливки '''fill''', имя гарнитуры '''name''' и так далее.&lt;br /&gt;
&lt;br /&gt;
===Эффектная трансформация===&lt;br /&gt;
&lt;br /&gt;
Помимо прочего, графические объекты ''JavaFX'' поддерживают самые различные эффекты и преобразования (трансформации). Что скрывается за этими словами? Ответ на этот вопрос понятен любому, кто работал с графическими редакторами, такими как ''GIMP'' или ''Adobe Photoshop''. Эффект – это визуальное изменение, которое строится на базе текущего представления объекта на сцене. Для задания эффекта у объектов типа '''Node''' существует специальный атрибут '''effect'''.&lt;br /&gt;
&lt;br /&gt;
Прежде чем использовать эффекты, необходимо подключить пакет '''javafx.scene.effect'''. Классическим эффектом является отбрасываемая от объекта тень, словно он является трехмерным и действительно может заслонять собой падающий свет. Тень может быть реализована с помощью объекта '''DropShadow''' или '''InnerShadow'''. Например, если вы внимательно просматривали исходные тексты сценария '''FirstGroup.fx''', упоминавшегося нами ранее, то могли заметить внутри объекта '''Group''' пару закомментированных строк:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=java&amp;gt;&lt;br /&gt;
  effect: DropShadow{offsetX:5 offsetY:5 color: Color.DARKGRAY}&lt;br /&gt;
  effect: InnerShadow{offsetX:5 offsetY:5 color: Color.DARKGRAY}&lt;br /&gt;
  effect: Blend{&lt;br /&gt;
  topInput: DropShadow {&lt;br /&gt;
            offsetX: 4 offsetY: 4 radius: 6&lt;br /&gt;
            color: Color.DARKGRAY}&lt;br /&gt;
  bottomInput: DropShadow {&lt;br /&gt;
            offsetX: -4 offsetY: 4 radius: 6&lt;br /&gt;
            color: Color.DARKGRAY}&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первая строка накладывает на объект '''Group''' эффект отбрасываемой наружу тени, в основе которой лежит цвет '''Color.DARKGRAY''' (темно-серый). Если оставить только вторую строку, то с помощью объекта '''InnerShadow''' будет создана тень, отбрасываемая внутрь объекта – иллюзия вдавленной под поверхность кнопки. Механизм эффектов реализован очень просто, и '''JavaFX''' даже позволяет комбинировать несколько эффектов – как, например, в последнем случае с '''Blend'''. Визуальный эффект от него интереснее, чем от двух предыдущих – скомпилируйте и запустите скрипт '''FirstGroup.fx''', предварительно раскомментировав соответствующие строки.&lt;br /&gt;
&lt;br /&gt;
Эффекты не ограничены только работой с тенями. Есть, например, любопытный эффект '''Reflection''', который позволяет создать отражение (ну не могла же Sun Microsystems обойтись без него в ''JavaFX'', ведь этот эффект у всех ассоциируется с Web 2.0!). Можно сделать небезосновательное предположение, что число доступных эффектов в следующих версиях ''JavaFX'' будет увеличиваться.&lt;br /&gt;
&lt;br /&gt;
В отличие от эффектов, возможностей преобразования графических объектов с помощью трансформаций наверняка больше не станет, так как уже реализованы следующие: &lt;br /&gt;
* перенос (Translate);&lt;br /&gt;
* вращение (Rotate);&lt;br /&gt;
* масштабирование (Scaling) – пропорциональное изменение размеров;&lt;br /&gt;
* деформация (Shear) – эффект от применения похож на сдвиг рисунка по осям – например, наклон, как в наклонном тексте.&lt;br /&gt;
&lt;br /&gt;
Помимо перечисленных, в ''JavaFX'' есть и другие преобразования, но мы сейчас не будем останавливаться на них подробно.&lt;br /&gt;
&lt;br /&gt;
===События===&lt;br /&gt;
&lt;br /&gt;
Если вернуться к нашей «кнопке», то сразу станет понятна ее неполноценность. Для создания настоящего элемента управления необходимо реализовать обработку событий. На мой взгляд, по сравнению с объектами '''Swing''' в ''Java'', сделать это в ''JavaFX'' значительно проще. У объектов '''Node''' заранее определено более десятка всевозможных событий, которые обрабатываются в том случае, если написана соответствующая функция.&lt;br /&gt;
&lt;br /&gt;
Для примера рассмотрим скрипт '''FirstGroup2.fx''', который является небольшой модификацией '''FirstGroup.fx'''. Разница заключается в том, что объект&lt;br /&gt;
'''Group''' содержит следующий дополнительный код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=java&amp;gt;&lt;br /&gt;
 effect: DropShadow{offsetX:5 offsetY:5 color: Color.DARKGRAY}&lt;br /&gt;
 onMousePressed: function( e: MouseEvent ):Void {&lt;br /&gt;
      e.node.effect = InnerShadow{offsetX:5 offsetY:5 color: Color.DARKGRAY}&lt;br /&gt;
 }&lt;br /&gt;
 onMouseReleased: function( e: MouseEvent ):Void {&lt;br /&gt;
      e.node.effect = DropShadow{offsetX:5 offsetY:5 color: Color.DARKGRAY}&lt;br /&gt;
 }&lt;br /&gt;
 onMouseClicked: function( e: MouseEvent ):Void {&lt;br /&gt;
      numOfClick++;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того, в теле скрипта определены еще две переменные:&lt;br /&gt;
&amp;lt;source lang=java&amp;gt;&lt;br /&gt;
  var numOfClick = 0;&lt;br /&gt;
  var a : Text = Text {&lt;br /&gt;
      content: bind numOfClick.toString();&lt;br /&gt;
      x: 30;&lt;br /&gt;
      y: 80;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Фактически, для нашей  кнопки назначен эффект падающей тени и определены функции для обработки трех событий: нажатие клавиши мыши ('''onMousePressed''' – меняет эффект с тени, падающей наружу, на падающую вовнутрь), отпускание клавиши мыши ('''onMouseReleased''' – возвращает все как было) и обработка&lt;br /&gt;
клика ('''onMouseClicked''' – увеличивает значение переменной '''numOfClick''' на единицу). Переменная '''a''' отображает число щелчков, которое&lt;br /&gt;
было сделано мышью по кнопке. Обратите внимание на связывание (конструкция '''bind''') – мы говорили о нем в [[LXF119:JavaFX|LXF119]].&lt;br /&gt;
&lt;br /&gt;
===И напоследок…===&lt;br /&gt;
&lt;br /&gt;
На данном уроке мы познакомились с некоторыми возможностями ''JavaFX'' по части пользовательского интерфейса:  создали графический объект и реализовали обработку событий для него. Этого вполне достаточно для несложных приложений, но в более серьезных случаях бывает необходимо применять&lt;br /&gt;
компоненты '''Swing''' и ''Java''-классы. Я решил оставить этот вопрос вам на самостоятельное изучение: в конце концов, если вы уже знаете&lt;br /&gt;
'''Swing''' или ''Apache POI'', то разобраться с тем, как вызвать их из ''JavaFX Script'', не составит для вас труда. Основа заложена&lt;br /&gt;
– дополнительную информацию можно почерпнуть  из документации и других  ресурсов, перечисленных в прошлом номере. Если ваша программа выиграет&lt;br /&gt;
приз в ''JavaFX Galaxy'', дайте нам знать!&lt;br /&gt;
&lt;br /&gt;
===Онлайн-магазины===&lt;br /&gt;
&lt;br /&gt;
Оглушительный&lt;br /&gt;
успех iTunes App Store как&lt;br /&gt;
магазина&lt;br /&gt;
приложений&lt;br /&gt;
заставил&lt;br /&gt;
крупных&lt;br /&gt;
поставщиков&lt;br /&gt;
взглянуть&lt;br /&gt;
на это направление&lt;br /&gt;
как&lt;br /&gt;
на новую&lt;br /&gt;
возможность&lt;br /&gt;
распространения&lt;br /&gt;
своих&lt;br /&gt;
продуктов&lt;br /&gt;
и удержанияНа конференции&lt;br /&gt;
JavaOne, проходившей&lt;br /&gt;
с 1 по 5 июня&lt;br /&gt;
в Сан-Франциско&lt;br /&gt;
(США), технологии&lt;br /&gt;
JavaFX уделялось&lt;br /&gt;
повышенное&lt;br /&gt;
внимание. Среди&lt;br /&gt;
участников&lt;br /&gt;
конференции&lt;br /&gt;
у нас имелся&lt;br /&gt;
свой агент – Денис Магда,&lt;br /&gt;
Sun Campus Ambassador из города&lt;br /&gt;
Благовещенска&lt;br /&gt;
Амурской&lt;br /&gt;
области.&lt;br /&gt;
Мы с радостью&lt;br /&gt;
предоставляем&lt;br /&gt;
вам его отчет&lt;br /&gt;
о мероприятии.&lt;br /&gt;
Linux Format (LXF): Денис, скажите,&lt;br /&gt;
как простому&lt;br /&gt;
студенту&lt;br /&gt;
удалось&lt;br /&gt;
побывать&lt;br /&gt;
на JavaOne 2009?&lt;br /&gt;
Кого&lt;br /&gt;
для этого&lt;br /&gt;
нужно&lt;br /&gt;
убить?&lt;br /&gt;
Денис Магда&lt;br /&gt;
(ДМ): Убивать&lt;br /&gt;
никого&lt;br /&gt;
не пришлось&lt;br /&gt;
[смеется].&lt;br /&gt;
Все дело&lt;br /&gt;
в том, что мое увлечение&lt;br /&gt;
технологиями&lt;br /&gt;
Sun и реализация&lt;br /&gt;
небольшого&lt;br /&gt;
приспособления&lt;br /&gt;
с использованием&lt;br /&gt;
SunSPOT, Java и JavaFX заинтересовало&lt;br /&gt;
боссов Sun Microsystems.&lt;br /&gt;
LXF: Вы имеете&lt;br /&gt;
в виду,&lt;br /&gt;
сенсорно...&lt;br /&gt;
выговорить&lt;br /&gt;
не могу?&lt;br /&gt;
ДМ: Да, да. Сенсорно-&lt;br /&gt;
моторный&lt;br /&gt;
интерфейс&lt;br /&gt;
управления,&lt;br /&gt;
по сути&lt;br /&gt;
– это перчатки&lt;br /&gt;
с кнопками&lt;br /&gt;
и контроллерами&lt;br /&gt;
SunSPOT. SunSPOT’ы позволяют&lt;br /&gt;
определить&lt;br /&gt;
изменение&lt;br /&gt;
положений&lt;br /&gt;
рук с помощью&lt;br /&gt;
встроенных&lt;br /&gt;
датчиков&lt;br /&gt;
(акселерометров)&lt;br /&gt;
и обеспечить&lt;br /&gt;
беспроводную&lt;br /&gt;
передачу&lt;br /&gt;
данных&lt;br /&gt;
на ПК. Кстати,&lt;br /&gt;
управление&lt;br /&gt;
контроллером&lt;br /&gt;
осуществляется&lt;br /&gt;
с помощью&lt;br /&gt;
программы,&lt;br /&gt;
написанной&lt;br /&gt;
на Java, и приложение,&lt;br /&gt;
принимающее&lt;br /&gt;
данные&lt;br /&gt;
на стороне&lt;br /&gt;
ПК, тоже&lt;br /&gt;
написано&lt;br /&gt;
на Java. Весь код доступен&lt;br /&gt;
по лицензии&lt;br /&gt;
GPL на сейте&lt;br /&gt;
проекта&lt;br /&gt;
https://sensormotor-gloves.dev.java.net/.&lt;br /&gt;
Там же можно&lt;br /&gt;
посмотреть&lt;br /&gt;
видеодемонстрацию.&lt;br /&gt;
LXF: А каким&lt;br /&gt;
образом&lt;br /&gt;
используется&lt;br /&gt;
в вашем&lt;br /&gt;
проекте&lt;br /&gt;
JavaFX?&lt;br /&gt;
ДМ: О, я думал,&lt;br /&gt;
как сделать&lt;br /&gt;
красочную&lt;br /&gt;
демонстрацию&lt;br /&gt;
своего&lt;br /&gt;
устройства,&lt;br /&gt;
и написал&lt;br /&gt;
демо&lt;br /&gt;
на JavaFX. На сцене&lt;br /&gt;
размещены&lt;br /&gt;
несколько&lt;br /&gt;
объектов&lt;br /&gt;
с мультимедийным&lt;br /&gt;
содержанием&lt;br /&gt;
(картинки&lt;br /&gt;
и видео),&lt;br /&gt;
и с помощью&lt;br /&gt;
перчаток&lt;br /&gt;
можно&lt;br /&gt;
выполнять&lt;br /&gt;
различные&lt;br /&gt;
операции:&lt;br /&gt;
запускать&lt;br /&gt;
ролики,&lt;br /&gt;
увеличивать&lt;br /&gt;
или уменьшать&lt;br /&gt;
объекты,&lt;br /&gt;
вращать&lt;br /&gt;
их и так далее.&lt;br /&gt;
Но для JavaOne пришлось&lt;br /&gt;
создать&lt;br /&gt;
гораздо&lt;br /&gt;
более&lt;br /&gt;
интересную&lt;br /&gt;
демонстрацию.&lt;br /&gt;
LXF: Отлично.&lt;br /&gt;
И, конечно,&lt;br /&gt;
ее исходные&lt;br /&gt;
тексты&lt;br /&gt;
тоже&lt;br /&gt;
можно&lt;br /&gt;
загрузить&lt;br /&gt;
с сайта&lt;br /&gt;
проекта?&lt;br /&gt;
ДМ: Нет, боюсь,&lt;br /&gt;
их там пока&lt;br /&gt;
нет, но как только&lt;br /&gt;
я освобожусь,&lt;br /&gt;
думаю,&lt;br /&gt;
выложу&lt;br /&gt;
обе «демки&lt;br /&gt;
»:&lt;br /&gt;
и старую,&lt;br /&gt;
и новую.&lt;br /&gt;
Пока&lt;br /&gt;
нет и официального&lt;br /&gt;
видео&lt;br /&gt;
с JavaOne, но можно&lt;br /&gt;
посмотреть&lt;br /&gt;
любительские&lt;br /&gt;
съемки,&lt;br /&gt;
например,&lt;br /&gt;
здесь: http://www.youtube.&lt;br /&gt;
com/watch?v=QKkHjSO_cAo. Вообще,&lt;br /&gt;
JavaFX&lt;br /&gt;
на JavaOne было&lt;br /&gt;
уделено&lt;br /&gt;
огромное&lt;br /&gt;
внимание и среди&lt;br /&gt;
стендов,&lt;br /&gt;
и среди&lt;br /&gt;
выступающих.&lt;br /&gt;
В числе&lt;br /&gt;
новинок&lt;br /&gt;
– релиз&lt;br /&gt;
JavaFX 1.2 и специальная&lt;br /&gt;
среда&lt;br /&gt;
разработки,&lt;br /&gt;
причем&lt;br /&gt;
это не NetBeans, и еще многое,&lt;br /&gt;
о чем&lt;br /&gt;
просто&lt;br /&gt;
нельзя&lt;br /&gt;
рассказать&lt;br /&gt;
– это надо&lt;br /&gt;
видеть.&lt;br /&gt;
LXF: Читателей&lt;br /&gt;
нашего&lt;br /&gt;
журнала&lt;br /&gt;
волнует&lt;br /&gt;
такой&lt;br /&gt;
вопрос:&lt;br /&gt;
когда же будет&lt;br /&gt;
версия&lt;br /&gt;
JavaFX под Linux?&lt;br /&gt;
ДМ: Скажу&lt;br /&gt;
коротко,&lt;br /&gt;
я ее уже видел...&lt;br /&gt;
и вы тоже&lt;br /&gt;
можете.&lt;br /&gt;
Просто&lt;br /&gt;
зайдите&lt;br /&gt;
по адресу&lt;br /&gt;
http://javafx.&lt;br /&gt;
com/downloads/all.jsp: отсюда&lt;br /&gt;
можно&lt;br /&gt;
загрузить&lt;br /&gt;
JavaFX 1.2 для Linux, Solaris, Mac OS X и Windows.&lt;br /&gt;
LXF: Спасибо&lt;br /&gt;
вам, Денис, за уделенное&lt;br /&gt;
время&lt;br /&gt;
и приятные&lt;br /&gt;
новости!&lt;br /&gt;
ДМ: И вам тоже&lt;br /&gt;
спасибо&lt;br /&gt;
клиентов.&lt;br /&gt;
&lt;br /&gt;
Еще в мае был открыт&lt;br /&gt;
магазин&lt;br /&gt;
приложений&lt;br /&gt;
Ovi (https://store.ovi.com/), разработанный&lt;br /&gt;
Nokia. Доступ к ресурсу&lt;br /&gt;
осуществляется&lt;br /&gt;
прямо&lt;br /&gt;
с мобильных&lt;br /&gt;
телефонов&lt;br /&gt;
Nokia. Так же,&lt;br /&gt;
как и iTunes Store, сервис&lt;br /&gt;
от финской&lt;br /&gt;
компании&lt;br /&gt;
позволяет&lt;br /&gt;
загружать&lt;br /&gt;
приложения,&lt;br /&gt;
игры,&lt;br /&gt;
видеоролики,&lt;br /&gt;
подкасты.&lt;br /&gt;
&lt;br /&gt;
Отметим,&lt;br /&gt;
что сервис&lt;br /&gt;
Ovi был русифицирован&lt;br /&gt;
и стал доступен&lt;br /&gt;
российским&lt;br /&gt;
пользователям&lt;br /&gt;
без задержек,&lt;br /&gt;
а наиболее&lt;br /&gt;
активные&lt;br /&gt;
владельцы&lt;br /&gt;
телефонов&lt;br /&gt;
Nokia уже попробовали&lt;br /&gt;
его в действии.&lt;br /&gt;
&lt;br /&gt;
Незадолго&lt;br /&gt;
до открытия&lt;br /&gt;
сервиса&lt;br /&gt;
Ovi&lt;br /&gt;
Джонатан&lt;br /&gt;
Шварц [Jonathan Schwartz], исполнительный&lt;br /&gt;
директор&lt;br /&gt;
компании&lt;br /&gt;
Sun&lt;br /&gt;
Microsystems, анонсировал&lt;br /&gt;
запуск&lt;br /&gt;
Java App Store: видеообращение&lt;br /&gt;
по этому&lt;br /&gt;
поводу&lt;br /&gt;
можно&lt;br /&gt;
посмотреть&lt;br /&gt;
в официальном&lt;br /&gt;
блоге&lt;br /&gt;
http://blogs.sun.com/jonathan/entry/will_java_be_the_world. Сервис&lt;br /&gt;
будет&lt;br /&gt;
предоставлять&lt;br /&gt;
возможность&lt;br /&gt;
распространения&lt;br /&gt;
ПО, написанного&lt;br /&gt;
с помощью&lt;br /&gt;
''Java'' и ''JavaFX'', как для мобильной&lt;br /&gt;
платформы,&lt;br /&gt;
так и для обыкновенных&lt;br /&gt;
ПК. Официальное&lt;br /&gt;
открытие&lt;br /&gt;
магазина&lt;br /&gt;
состоялось&lt;br /&gt;
на конференции&lt;br /&gt;
JavaOne 2009.&lt;br /&gt;
&lt;br /&gt;
===''SunSPOT'' и ''JavaFX''===&lt;br /&gt;
&lt;br /&gt;
На конференции JavaOne, проходившей с 1 по 5 июня в Сан-Франциско (США), технологии ''JavaFX'' уделялось повышенное внимание. Среди участников конференции у нас имелся свой агент – Денис Магда, Sun Campus Ambassador из города Благовещенска Амурской области. Мы с радостью предоставляем&lt;br /&gt;
вам его отчет о мероприятии. &lt;br /&gt;
&lt;br /&gt;
'''''Linux Format (LXF)''': Денис, скажите, как простому студенту удалось побывать на JavaOne 2009? Кого для этого нужно убить?''&lt;br /&gt;
&lt;br /&gt;
'''Денис Магда (ДМ)''': Убивать никого не пришлось&lt;br /&gt;
[смеется]. Все дело&lt;br /&gt;
в том, что мое увлечение&lt;br /&gt;
технологиями&lt;br /&gt;
Sun и реализация&lt;br /&gt;
небольшого&lt;br /&gt;
приспособления&lt;br /&gt;
с использованием&lt;br /&gt;
''SunSPOT, Java'' и ''JavaFX'' заинтересовало&lt;br /&gt;
боссов Sun Microsystems.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Вы имеете в виду, сенсорно... выговорить не могу?''&lt;br /&gt;
&lt;br /&gt;
'''ДМ:''' Да, да. Сенсорно-моторный интерфейс управления, по сути – это перчатки&lt;br /&gt;
с кнопками&lt;br /&gt;
и контроллерами&lt;br /&gt;
''SunSPOT. SunSPOT''’ы позволяют&lt;br /&gt;
определить изменение положений&lt;br /&gt;
рук с помощью&lt;br /&gt;
встроенных&lt;br /&gt;
датчиков&lt;br /&gt;
(акселерометров)&lt;br /&gt;
и обеспечить&lt;br /&gt;
беспроводную&lt;br /&gt;
передачу&lt;br /&gt;
данных&lt;br /&gt;
на ПК. Кстати,&lt;br /&gt;
управление&lt;br /&gt;
контроллером&lt;br /&gt;
осуществляется&lt;br /&gt;
с помощью&lt;br /&gt;
программы,&lt;br /&gt;
написанной&lt;br /&gt;
на ''Java'', и приложение,&lt;br /&gt;
принимающее&lt;br /&gt;
данные&lt;br /&gt;
на стороне&lt;br /&gt;
ПК, тоже&lt;br /&gt;
написано&lt;br /&gt;
на ''Java''. Весь код доступен&lt;br /&gt;
по лицензии&lt;br /&gt;
GPL на сейте&lt;br /&gt;
проекта&lt;br /&gt;
https://sensormotor-gloves.dev.java.net/.&lt;br /&gt;
Там же можно&lt;br /&gt;
посмотреть&lt;br /&gt;
видеодемонстрацию.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' А каким образом используется в вашем проекте '''JavaFX'''?''&lt;br /&gt;
&lt;br /&gt;
'''ДМ:''' О, я думал, как сделать красочную демонстрацию&lt;br /&gt;
своего&lt;br /&gt;
устройства,&lt;br /&gt;
и написал&lt;br /&gt;
демо&lt;br /&gt;
на ''JavaFX''. На сцене&lt;br /&gt;
размещены&lt;br /&gt;
несколько&lt;br /&gt;
объектов&lt;br /&gt;
с мультимедийным&lt;br /&gt;
содержанием&lt;br /&gt;
(картинки&lt;br /&gt;
и видео),&lt;br /&gt;
и с помощью&lt;br /&gt;
перчаток&lt;br /&gt;
можно&lt;br /&gt;
выполнять&lt;br /&gt;
различные&lt;br /&gt;
операции:&lt;br /&gt;
запускать&lt;br /&gt;
ролики,&lt;br /&gt;
увеличивать&lt;br /&gt;
или уменьшать&lt;br /&gt;
объекты,&lt;br /&gt;
вращать&lt;br /&gt;
их и так далее.&lt;br /&gt;
Но для ''JavaOne'' пришлось&lt;br /&gt;
создать&lt;br /&gt;
гораздо&lt;br /&gt;
более&lt;br /&gt;
интересную&lt;br /&gt;
демонстрацию.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Отлично. И, конечно, ее исходные тексты тоже можно загрузить с сайта проекта?''&lt;br /&gt;
&lt;br /&gt;
'''ДМ:''' Нет, боюсь,&lt;br /&gt;
их там пока&lt;br /&gt;
нет, но как только&lt;br /&gt;
я освобожусь,&lt;br /&gt;
думаю,&lt;br /&gt;
выложу&lt;br /&gt;
обе «демки»: и старую, и новую.&lt;br /&gt;
Пока&lt;br /&gt;
нет и официального&lt;br /&gt;
видео&lt;br /&gt;
с ''JavaOne'', но можно&lt;br /&gt;
посмотреть&lt;br /&gt;
любительские&lt;br /&gt;
съемки,&lt;br /&gt;
например,&lt;br /&gt;
здесь: http://www.youtube.com/watch?v=QKkHjSO_cAo. Вообще, ''JavaFX''&lt;br /&gt;
на JavaOne было&lt;br /&gt;
уделено&lt;br /&gt;
огромное&lt;br /&gt;
внимание и среди&lt;br /&gt;
стендов,&lt;br /&gt;
и среди&lt;br /&gt;
выступающих.&lt;br /&gt;
В числе&lt;br /&gt;
новинок&lt;br /&gt;
– релиз&lt;br /&gt;
''JavaFX 1.2'' и специальная&lt;br /&gt;
среда&lt;br /&gt;
разработки,&lt;br /&gt;
причем&lt;br /&gt;
это не ''NetBeans'', и еще многое,&lt;br /&gt;
о чем&lt;br /&gt;
просто&lt;br /&gt;
нельзя&lt;br /&gt;
рассказать&lt;br /&gt;
– это надо&lt;br /&gt;
видеть.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Читателей нашего журнала волнует такой вопрос: когда же будет версия '''JavaFX''' под Linux?''&lt;br /&gt;
&lt;br /&gt;
'''ДМ:''' Скажу&lt;br /&gt;
коротко,&lt;br /&gt;
я ее уже видел...&lt;br /&gt;
и вы тоже&lt;br /&gt;
можете.&lt;br /&gt;
Просто&lt;br /&gt;
зайдите&lt;br /&gt;
по адресу&lt;br /&gt;
http://javafx.com/downloads/all.jsp: отсюда можно&lt;br /&gt;
загрузить&lt;br /&gt;
''JavaFX 1.2'' для Linux, Solaris, Mac OS X и Windows.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Спасибо вам, Денис, за уделенное время и приятные новости!''&lt;br /&gt;
&lt;br /&gt;
'''ДМ:''' И вам тоже&lt;br /&gt;
спасибо &lt;br /&gt;
'''LXF'''&lt;/div&gt;</description>
			<pubDate>Tue, 15 Jun 2010 10:24:35 GMT</pubDate>			<dc:creator>Crazy Rebel</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF120:JavaFX</comments>		</item>
	</channel>
</rss>