JavaFX on Java-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 verkkoselaimia Microsoft Windowsissa, Linuxissa ja MacOS:ssa sekä mobiililaitteita, joissa on iOS ja Android 12 tai sitä uudempi Android. JavaFX on rakennettu Java-kielen päälle ja se on tarkoitettu korvaamaan Swing GUI-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ä ja Windows 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 perustuva Swing. Tästä on luovuttu. Swing kuuluu Java SE -standardiin ja toimitetaan sen mukana, toisin kuin JavaFX.[7][5]