3f-lab: FX подкрался незаметно

Все Java-технологии я люблю, все уважаю, а вот фреймворк JavaFX как-то никак не хотел вписываться в мои представления о любимом языке программирования. Он задуман как очередной «убийца Adobe Flash», но я не очень интересуюсь приложениями с «богатым» (aka насыщеным) интерфейсом. Несколько раз добросовестно пытался залезть на соответствующий сайт и вникнуть в суть, но каждый раз откладывал на потом. И это потом нагрянуло с самой неожиданной стороны…


Дело в том, что один из предметов, который преподаю в колледже, называется «Мультимедийные технологии». В принципе, под это понятие можно подогнать очень и очень многие современные концепции программирования. Например, веб-дизайн вполне можно рассматривать в этом разрезе, тем более что знания по HTML+JavaScript+CSS для многих студентов в новинку и с удовольствием усваиваются. Прочитав несколько лекций по веб-дизайну, я с удивлением обнаружил, что материал кончился: вдаваться в тонкости AJAX было бы уже выходом за рамки курса.

Куда двигаться дальше? Изучать Adobe Flash? Но для этого нет инструментов. Учить работать с видео и звуком? Опять-таки нет хороших редакторов. Вот тут-то я и вспомнил про JavaFX и сразу же прикрутил это дело к 3f-lab. Вот что для этого надо сделать.

1. Скачать дистрибутив JavaFX SDK.

2. Поместить его в ${LAB_HOME}/_bin/java

3. Сделать файл исполняемым и запустить в консоли. Процедура установки такая же, как для JDK и WTK.

4. Сделать линк:

ln -s javafx-sdk-1.2.3/ javafx


на случай если в будущем версия обновится.

5. Дык всё! Можно создавать пробный проект

mkdir -p ${LAB_HOME}/_projects/JFX_TEST/src


В проект копируем какой-нибудь нехитрый fx-скрипт из любого из многочисленных туториалов. Например такой:

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.shape.Rectangle; 
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;

Stage {
    title: "Declaring Is Easy!"
    scene: Scene {
        width: 300
        height: 250
        content: [
            Rectangle {
                x: 25, y: 80 width: 250, height: 80
                arcWidth: 20 arcHeight: 20
                fill: Color.web("#6699ff")
                stroke: Color.web("#003399")
                strokeWidth: 5.0
            }, //Rectangle
            Circle {
                centerX: 150  centerY: 120 radius: 80
                fill: Color.MAROON
                stroke: Color.INDIANRED
                strokeWidth: 10.0
            } //Circle      
        ] //Content
    } //Scene
} //Stage


Сохраняем это в файл frame.fx.

Теперь нужно настроить сборщик ant. Файл build.xml выглядит довольно хитро, но ничего уж слишком сложного:

<?xml version="1.0" encoding="UTF-8"?>
<project name="FxTest" default="all" basedir=".">
     
    <property environment="env"/>
    <property name="java.home" value="/_bin/java/sun" />
    <property name="jfx.home"  value="/_bin/java/javafx" />
    <path id="compile.classpath">
        <fileset dir="${java.home}/lib">
            <include name="**/*.jar" />
        </fileset>
        <fileset dir="${jfx.home}/lib">
            <include name="**/*.jar" />
        </fileset>
        
    </path>

    <taskdef classname="com.sun.tools.javafx.ant.JavaFxAntTask" name="javafxc">
        <classpath refid="compile.classpath" />
    </taskdef>

    <target name="all">
        <javafxc srcdir="." destdir="." includes="**/*.fx" executable="${jfx.home}/bin/javafxc">
		<classpath refid="compile.classpath" />
        </javafxc>
        
    </target>

</project>


После ввода в консоль команды ant в осадок выпадает файл frame.class, который запускается на исполнение командой

/_bin/java/javafx/bin/vafx frame


И выводит на экран вот что:



Не ахти какая красота, но если учесть, что на написание данного топика я затратил гораздо больше времени, чем на создание этой своей первой программы на JavaFX, технологию нельзя не назвать привлекательной. К тому же сулят, что одно и то же приложение будет работать и на десктопе, и на мобильном устройстве, причем не суперсовременном, а на обычном телефоне с поддержкой Java. Всё, камрады, мне некогда, надо кое-то переписать на JavaFX.
  • +4
  • 01 марта 2010, 20:40
  • yababay

Комментарии (3)

RSS свернуть / развернуть
+
0
ещё бы движение объектов бы разучить)))
avatar

FREExLOADER

  • 01 марта 2010, 20:45
+
0
Да там всё просто. Сейчас как раз анимацию надумал сделать в одном из старых приложений. Сделаю — выложу.
avatar

yababay

  • 01 марта 2010, 20:52
+
0
Вау!!! Очень вери гуд !
avatar

Markony

  • 02 марта 2010, 07:46

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.