Annyit hallani már a JavaFX programnyelvről, hogy az embernek a könyökén jön ki, s a csapból is ez folyik... ennek ellenére alig tudják páran, hogy mi is ez a JavaFX. No, nézzük meg közelebbről. Első lépésként írjuk be böngészőnkbe a https://openjfx.dev.java.net/ címet, itt találjuk meg az Open JavaFX minden információját és újdonságait. Telepítsük fel kedvenc fejlesztőkörnyezetünkhöz (Eclipse 3.2, NetBeans 5.5 illetve NetBeans 6.0 M9 támogatott) a JavaFX plugin-t (mi NetBeans 6.0 M9 környezetre tettük fel). A leírások alapján hozzunk létre egy új projektet, amely JavaFX Application típusú legyen, nevezzük például FirstJavaFX néven.
A JavaFX forrásállománynak nem java a kiterjesztése, hanem fx, minden egyebet tekintve bele lehet illeszteni a már kialakult struktúrába. A NetBeans 6.0 a Main.fx nevet adja a főprogramunknak, ezt megnyitva írjuk bele az alábbi kis programot:
import javafx.ui.*; Frame { title: "Az első JavaFX programom!" width: 200 height: 50 content: Label { text: "Helló Java Fórum olvasók!" } visible: true } |
Ez meg fog nyitni egy ablakot ( Frame ), beméretezi a megadott méretekre, létrehoz benne egy címkét, az egészet láthatóvá teszi. Ja, és elbaszelrontja a karakterkészletet (legalábbis Windows XP alatt). Nade sebaj, nyilván még dolgoznia kell ezzel a fejlesztőknek, hogy hibamentes és gyors legyen... :)
A (helló világot követő) következő lépcső a grafikus felületű programok esetén általában valami gomb vagy beviteli mező felhasználása, hogy bizonyítani tudjuk az interaktivitást:
import javafx.ui.*; class MainModel{ attribute name: String; } var model = MainModel{ name: "Write your name!" }; var win = Frame { title: bind "Hello {model.name}, this is the JavaFX!" width: 400 height: 100 content: GridPanel { rows: 2 columns: 1 vgap: 10 cells: [ Label { text: "Your name:" }, TextField { value: bind model.name } ] } visible: true } |
Ez a program értelemszerűen hosszabb, viszont látni belőle, hogy az eseménykezelés nagyon egyszerű: a bind parancsot kell használunk két valami összekötéséhez. A programban létrehoztunk egy modellt a szövegmező számára, amely a beleírt szöveget fogja hordozni, ezt hozzákötjük a szövegmezőhöz. Ezek után a program címsorát is hozzákötjük a modellhez, s itt egyfajta Expression Language alapján összefűzzük a megjelenítendő szöveget és a modell használandó tulajdonságait (model. name ). A program eseménykezelése egyszerűen a név beírása után ütött Enter billentyűre fog feléledni, ugyanis ez a TextField alapértelmezett eseménye.
A most használt angol szövegekkel már semmi baja nincs a JavaFX kód futtató részének. Ugyanis a JavaFX forrásból Java osztály keletkezik és már ezt futtatja a Java virtuális gép. Valahol elveszik a karakterek kódolási információja (gondolom a Win1250 kódlap érvényes a konzolomon, és ezzel fordítja le a Main.fx állományt, a NetBeans pedig UTF-8 kódlappal teszi bele a szöveget).
További információkért érdemes megnézni az Open JavaFX oldalon lévő gyorstalpalót, amely röviden és gyorsan bemutatja az összes JavaFX komponenst, eseménykezelést, lehetőségeket (amelyek már elkészültek :). Ezeket végignézve azt kell mondjam, hogy nem néz ki rosszul a JavaFX, sok programsort meg lehet spórolni, ugyanakkor nyilván nem fogja elbitorolni a Java kivívott pozícióját, de esélye lesz betörni a * on Rails által elfoglalt piaci szegmensekbe.