4.01.2018

2.12.2009

12.28.2008

Как использовать binding

Одной из важных особенностей JavaFX является binding. Упрощённо, binding это связывание значений переменных с каким-то выражением. При изменении составляющих выражения изменяется и значение переменной.

Например код

var a=0;
var b=bind a;
System.out.println("a={a}; b={b}");

a=1;

System.out.println("a={a}; b={b}");


выведет в output

a=0; b=0
a=1; b=1

Более сложный пример применения биндинга:



код класса для создания фона:

public class BackgroundImage extends CustomNode{
public var image:Image;

public var width:Number;

public var height:Number;

public override function create(): Node {

def ratio=bind image.width / image.height;

return ImageView {

fitWidth: bind
if(width / height > ratio) width else 0;
fitHeight: bind
if(width / height <= ratio) height else 0;
preserveRatio: true

image: image
};
}

}


использование:

BackgroundImage {
image: Image {

url: "{__DIR__}bg.jpg"
}
width: bind stage.width
height: bind stage.height

}


в результате изображение не меняя пропорций всегда растягивается чтобы полность занять окно либо по ширине либо по высоте.

Запустить пример через Webstart
http://molgav.nn.ru/surikov/files/jfx/snow/snow.jnlp

Связывать можно и массивы элементов, в примере падающие снежинки это массив
public var snow:Snowmate[];

в который через случайные промежутки времени вставляются новые объекты

read more...

12.23.2008

Как стартует апплет JavaFX

При открытии страницы содержащий апплет JavaFX провверяется наличие библиотек JavaFX runtime.


Во время проверки на странице виден только логотип Java.

Создание апплета JavaFX

При компиляции апплета JavaFX в Neatbeans в папке distr проекта создаётся 4 файла:
  • приложение.html - страница со встроенным апплетом
  • приложение.jar - сам апплет
  • приложение.jnlp - для запуска апплета через Webstart
  • приложение_browser.jnlp - для запуска апплета встроенного в страницу (обратите внимание что Netbeans задаёт неверный аттрибут codebase)
Стандартная страница запуска создаваемая Netbeans для запуска апплета содержит следующий код:
<script src="http://dl.javafx.com/dtfx.js">script>
<script>
javafx(
{
archive: "BreakOut.jar",
width: 800,
height: 400,
code: "breakout.Main",
name: "BreakOut"
}
);
script>
где http://dl.javafx.com/dtfx.js это ссылка на скрипт который должен выполнить скачивание JavaFX runtime. Файлов много и они достаточно большие по объёму но скачивание происходит только один раз и потом любые апплеты JavaFX будут брать их из кэша.

Для просмотра файлов в кэше откройте контольную панель Java (для Windows: Старт/Панель управления/Java)



и на вкладке General нажмите кнопку View...



- все файлы где адрес начинается с http://dl.javafx.com являются частью JavaFX runtime.

Подпись апплета

для доступа к любым ресурсам системы апплет должен быть подписан. При старте подписанного апплета появляется предупреждение:



Для подписи достаточно в свойствах проекта Netbeans поставить соответствующую галку:



Для того чтобы окошко предупреждения не появлялось можно купить доверенный сертификат Verisign.

Пример апплета

http://molgav.nn.ru/surikov/files/jfx/breakout/BreakOut.html

Запуск через Webstart
http://molgav.nn.ru/surikov/files/jfx/breakout/BreakOut.jnlp

read more...

12.17.2008

BreakOut локальная версия

Пример игрушки на JavaFX. Демонстрирует 2D-графику, звук, хранения состояний и локализацию.



Скачать breakout.zip - 3Mb

Рантайм JavaFX внутри архива, для запуска нужна Java v1.5 или выше.

При работе под linux возможно шрифты надписей могут выглядеть по-другому:


Желательно наличие в системе звуковой карты.


read more...