2012. március 4., vasárnap

JavaFX 2 - tapasztalatok

Pár napja fejeztem be a szakdolgozatom, aminek a GUI-ját JavaFX-ben dobtam össze, így az elmúlt 2 hónapban gyűjtött tapasztalataimat most megosztom e nagyszerű API-val kapcsolatban.

Mi is a JavaFX 2 ?

Egy API, mellyel GUI-t adhatunk Java projektünkhöz. Olyan, mint a Swing, csak sokkal szebb és funkciógazdagabb. Ha rákeresünk a JavaFX 1.x-es verzióira, láthatjuk, hogy annak külön szintaktikát vezettek be, szerencsére ez a 2.0-ban már nincs így, úgy használható, mint bármely más csomag. Csak telepíteni kell hozzá a fejlesztő kit-et, illetve a célgépen csak a runtime-ot. Emellett Java 7-et követel meg, illetve NetBeans 7.1-et (pontosabban). A NB-ben az új projekt varázslónál ki is lehet választani, hogy egy JavaFX projektet kezdesz, ekkor kapsz egy Hello World-öt.

A JDK telepítőjében a 7u2-es verziótól már megtalálható a JavaFX SDK is, tehát nem kell külön letölteni és installálni.

+ Előnyök

Gyönyörű grafikai elemeket tartalmaz, könnyen és gyorsan össze lehet dobni vele a felületet, a tutorial segít is benne. Emellett új kontrolok is vannak, például többféle grafikonnal is színesíthetjük projektünket (érdemes letölteni a samples csomagot!). Az elemeket CSS alapon lehet formázni, és van lehetőség effektezésre, akár animáltan is, és mivel a végeredmény lazán beágyazható weboldalba is, simán vetélytársa lehet a Flash-nek.

- Hátrányok

A tutorial csak az alapokat mutatja be, ha valami komolyabbat akarsz benne összerakni, bújni kell a doksit és izzadni pár cseppet, mire kitalálod, hogyan is kell. Az univerzalitás néhol a könnyű használat rovására megy. Például nekem nem tetszik az, ahogy a cellaformázást meg lehet oldani: ugyanis egyenként kell, oszloponként nem lehet. (cikkem erről)

Vannak benne bugok is, például a TextArea betűszínét még a legfrissebb 2.0.3-es verzióban sem képes átszínezni.


Hiányosságai is vannak, például nekem hiányzik egy onResize szerű event az ablakot formáló Stage objektumból. A kis méret / teljes méret gombokat sem lehet kikapcsolni, így dialog-ot készíteni benne (mert ugye nincs rá külön class) nehezebb.

Linkek

Minden (tutorial, letöltések) megtalálható itt: http://javafx.com
Érdemes a CSS referenciát könyvjelzőbe tenni, ha komolyabban is fejlesztesz a JavaFX-szel! :-)