JavaFX onJava-kielen ohjelmistoalusta, jolla voi luoda ja toimittaa työpöytäsovelluksia sekä rikkaita verkkosovelluksia, jotka toimivat monenlaisilla laitteilla. JavaFX tukee työpöytätietokoneita ja verkkoselaimiaMicrosoft Windowsissa,Linuxissa jaMacOS:ssa sekä mobiililaitteita, joissa oniOS ja Android 12 tai sitä uudempi Android. JavaFX on rakennettu Java-kielen päälle ja se on tarkoitettu korvaamaanSwingGUI-kirjastona Java SE:lle. JavaFX on osa OpenJDK:ta OpenJFX-projektin alla ja sitä voi käyttää ilmaiseksi avoimen lähdekoodin lisenssillä.[1]
JavaFX:n[2] ensimmäinen versio julkaistiin vuonna 2008.JavaFX on alun perin Sun Microsystemin kehittämä ja se tarjoaa Java-koodin kehittämistä varten graafisen käyttöliittymän (GUI) kehyskokoelman sekä käyttöliittymäohjelmointirajapinnan (API)[3]. JavaFX:n avulla voidaan luoda monipuolisia verkkosovelluksia sekä työpöytäsovelluksia ja se on rakennettu Java SE:n päälle, mikä mahdollistaa yhteensopivuuden useiden eri alustojen, kuten Linuxin, Windowsin ja macOSin kanssa.[4]
Windowsin käyttöliittymistä se tukee ainakin tukee Windows Vista-, Windows 7-, Windows 8-, Windows 10 -käyttöjärjestelmiä. JavaFX 1.2:sta alkaen Oracle on julkaissut beta-versioita OpenSolaris-käyttöjärjestelmälle. Mobiililaitteissa JavaFX Mobile 1.x pystyy toimimaan useissa mobiilikäyttöjärjestelmissä, kuten Symbian OS:ssä jaWindows Mobile -käyttöjärjestelmässä. Lisäksi JavaFX tukee muita mobiilikäyttöliittymiä, kuten iOS sekä Android -käyttöliittymiä.
JavaFX on kokoelma Java-paketteja, joita hyödyntämällä voidaan lisätä Java-sovelluksiin graafisia käyttöliittymiä[5] ja se sisältää useita valmiita komponentteja, kuten esimerkiksi tekstikenttiä, taulukoita ja painikkeita käyttöliittymän rakentamisen helpottamiseksi. Näiden lisäksi se sisältää esimerkiksi erilaisia visuaalisia efektejä sekä animaatioita. JavaFX:n ominaisuudet mahdollistavat esimerkiksi sen, että sitä voidaan käyttää esimerkiksi multimediasovellusten luomiseen ja se sopii erinomaisesti suorituskykyisten sovelluksien rakentamiseen, jotka vaativat paljon visuaalisia tehosteita[6]. Ennen JavaFX:ää pääasiallinen tapa luoda graafisia käyttöliittymiä oli tehdä se Swing API:n kautta.[5]
Deklaratiiviseen käyttöliittymään perustuvan JavaFX:n oli tarkoitus korvata perinteiseen imperatiiviseen käyttöliittymän luomiseen perustuvaSwing. Tästä on luovuttu. Swing kuuluu Java SE -standardiin ja toimitetaan sen mukana, toisin kuin JavaFX.[7][5]
JavaFX 1.1 perustuu "yhteisen profiilin", joka on tarkoitettu toimimaan kaikissa JavaFX:n tukemissa laitteissa. Tämä lähestymistapa mahdollistaa kehittäjille yhteisen ohjelmointimallin rakentaessa sovellusta ja jakamaan paljon koodia, graafisia elementtejä sekä sisältöä työpöytä- ja mobiiliversioiden välillä. JavaFX 1.1 -alustassa on myös työpöytä- tai mobiilikohtaisiaohjelmointirajapintoja, jotta voidaan vastata tarpeeseen hienosäätää sovelluksia tiettyä laitekokoa varten. Esimerkiksi JavaFX-työpöytäprofiili sisältääSwingin ja edistyneitä visuaalisia efektejä.
Käyttäjälle "Raahaa ja asenna" -ominaisuus mahdollistaa JavaFX-widgetin, joka on verkkosivustossa oleva, työpöydälle raahattava sovellus joka ei menetä tilaansa tai kontekstiaan, vaikka selain suljetaan. Sovellus voidaan myös käynnistää uudelleen napsauttamalla automaattisesti luotua pikakuvaketta käyttäjän työpöydällä. Tämä toiminto on mahdollistettu Java-aplett mekanismin avulla
JavaFX 1.x sisälsi sarjan lisäosia Adobe Photoshopille ja Illustratorille, jotka mahdollistavat edistyneiden grafiikoiden integroimisen suoraan JavaFX-sovelluksiin. Lisäosat tuottavat JavaFX Script -koodia, joka säilyttää grafiikan kerrokset ja rakenteen. Kehittäjät voivat siten lisätä animaatiota tai efektejä tuotuihin staattisiin grafiikoihin. JavaFX x.1 sisältää myös SVG-grafiikan muunnostyökalun (tunnetaan myös nimellä Media Factory), joka mahdollistaa grafiikan tuonnin ja toimintojen esikatselun muunnoksen jälkeen JavaFX-muodossa.
Ennen JavaFX:n 2.0 versiota kehittäjät käyttivät sovellusten rakentaimseen staattisesti kirjoitettua,deklaratiivista kieltä jota kutsuttiin JavaFX Scriptiksi. Koska JavaFX Script käännettiinJava-bytecodeksi, ohjelmoijat saattoivat käyttää sen sijaan myös Java-koodia. JavaFX-sovellukset saattoivat toimia missä tahansa pöytätietokoneessa, joka pystyi käyttämään Java SE:tä.[8]
JavaFX 2.0 ja sitä uudemmat versiot on implementoitu "alkuperäisenä" Java-kirjastona, ja JavaFX:ää käyttävät sovellukset kirjoitetaan "alkuperäisellä" Java-koodilla. Oracle on hylännyt JavaFX Scriptin, mutta kehitys jatkuu Visage-projektissa.[9] JavaFX 2.x ei tueSolaris-käyttöjärjestelmää tai matkapuhelimia; kuitenkin Oracle aikoo integroida JavaFX:n Java SE Embedded 8:aan. JavaFXARM-prosessoreille on kehittäjien esikatseluvaiheessa.[10]
Sun Microsystems on lisensoinut mukautetunkirjaintyypin nimeltä Amble JavaFX-laitteita varten. Fonttiperhe suunnitelun toteutti mobiilkäyttöliittymän suunnittelun erikoisosaajaPunchcut, ja se on saatavilla osana JavaFX SDK 1.3 julkaisua.
JavaFX Script, JavaFX-komponentin skriptikieli, sai alkunsaChris Oliverin projektina nimeltä F3.[11]
Sun Microsystems julkaisi JavaFX:n ensimmäisen kerranJavaOne Worldwide Java Developer -konferenssissa toukokuussa 2007.
Toukokuussa 2008 Sun Microsystems ilmoitti aikovansa toimittaa JavaFX:n selaimelle ja työpöydälle vuoden 2008 loppupuolella ja JavaFX:n mobiililaitteille vuoden 2009 puolivälillä. Sun ilmoitti myös monivuotisesta sopimuksesta On2 Technologiesin kanssa tuodakseen kattavat videomahdollisuudet JavaFX-tuoteperheeseen käyttäen yrityksen TrueMotionVideokoodekkia. Heinäkuun 2008 lopusta alkaen kehittäjät saattoivat ladata JavaFX SDK:n esikatselun Windowsille ja Macintoshille sekä JavaFX-liitännäisen NetBeans 6.1:lle.
JavaFX:n merkittävät julkaisut JavaFX 1.1:n jälkeen saavat julkaisunimensä San Franciscon katujen tai kaupunginosien mukaan. Päivitysjulkaisuilla ei yleensä ole julkaisunimeä.[12]
Sun julkaisi JavaFX 1.0.2:sen 4. joulukuuta 2008.
JavaFX mobiilikehitys oli vihdoin saatavilla JavaFX 1.1 -julkaisussa (Franca[12]), joka julkistettiin virallisesti 12. helmikuuta 2009.
JavaFX 1.2 (Marina[12]) julkaistiin JavaOnessa 2. kesäkuuta 2009. Tämä julkaisu esitteli seuraavat päivitykset:[13]
JavaFX 1.3 (Soma[12]) julkaistiin 22. huhtikuuta 2010. Tämä julkaisu esitteli seuraavat päivitykset:[14]
JavaFX 1.3.1 julkaistiin 21. elokuuta 2010. Tämä julkaisu esitteli:
JavaFX 2.0 (Presidio[12]) julkaistiin 10. lokakuuta 2011. Tämä julkaisu toi mukanaan:
Lukuisia parannuksia tehtiin JavaFX-kirjastoihin monisäikeistämisen osalta. Tehtävä-API:tä on päivitetty tukemaan paljon tiiviimpiä monisäikeistämismahdollisuuksia (mm. JavaTaskBase-luokka ei ole enää tarpeellinen, koska kaikki API:t ovat Javassa, eikä takaisinkutsurajapinnan ja Javan toteutusluokan vaatimusta ole enää). Lisäksi näkymäpuu on suunniteltu mahdollistamaan näkymien rakentaminen taustasäikeissä ja niiden liittäminen "eläviin" näkymiin säikeenkestävällä tavalla.
Oracle julkaisi JavaFX 2.0 Betan 26. toukokuuta 2011. Beetaversio oli saatavana vain 32- ja 64-bittisille Microsoft Windows XP-, Windows Vista- ja Windows 7-versioille.Mac OS X:lle Early Access -versio oli saatavilla JavaFX-kumppaniohjelman jäsenille, kun taas Linux-tuki oli suunniteltu tulevaisuuden JavaFX-versiolle. JavaFX 2.0 julkaistiin vain Windows-tuella. Mac OS X -tuki lisättiin JavaFX 2.1:een. Linux-tuki lisättiin JavaFX 2.2:een.
JavaFX 2.0 käyttää uutta deklaratiivista XML-kieltä nimeltäänFXML.
Huhtikuun 27. päivänä 2012 Oracle julkaisi JavaFX:n version 2.1,[15] joka sisältää seuraavat pääominaisuudet:[16]
Elokuun 14. päivänä 2012 Oracle julkaisi JavaFX:n version 2.2[17], joka sisältää seuraavat pääominaisuudet:[18]
JavaFX 2.2 lisää uuden pakkausvaihtoehdon nimeltä Native Packaging, joka mahdollistaa sovelluksen pakkaamisen "paikalliseksi nipuksi". Tämä antaa käyttäjille tavan asentaa ja ajaa sovellus ilman ulkoisia riippuvuuksia järjestelmän JRE:stä tai FX SDK:sta.
Oracle Java SE 7 päivityksen 6 ja JavaFX 2.2:n jälkeen JavaFX on pakattu Oracle Java SE -alustan asennukseen.