# JavaFX

JavaFX és una plataforma de programari per crear i lliurar aplicacions d'escriptori, així com aplicacions web riques que es poden executar en una gran varietat de dispositius. JavaFX té suport per a ordinadors d'escriptori i navegadors web a Microsoft Windows, Linux (inclòs Raspberry Pi) i macOS, així com dispositius mòbils amb iOS i Android, a través de Gluon Mobile.
Amb el llançament de JDK 11 el 2018, Oracle va fer que JavaFX forma part de l'OpenJDK sota el projecte OpenJFX, per tal d'augmentar el ritme del seu desenvolupament.
JavaFXPorts de codi obert funciona per a iOS (iPhone i iPad) i Android. El programari comercial relacionat creat amb el nom "Gluon" és compatible amb les mateixes plataformes mòbils amb funcions addicionals a més d'escriptori. Això permet que una única base de codi font creï aplicacions per a dispositius d'escriptori, iOS i Android.

## Característiques

JavaFX 1.1 es basava en el concepte d'un "perfil comú" que pretén abastar tots els dispositius compatibles amb JavaFX. Aquest enfocament permet als desenvolupadors utilitzar un model de programació comú mentre creen una aplicació dirigida tant a dispositius d'escriptori com a dispositius mòbils i compartir gran part del codi, els recursos gràfics i el contingut entre les versions d'escriptori i mòbils. Per fer front a la necessitat d'ajustar aplicacions en una classe específica de dispositius, la plataforma JavaFX 1.1 inclou API específiques d'escriptori o mòbil. Per exemple, el perfil d'escriptori JavaFX inclou Swing i efectes visuals avançats.
Per a l'usuari final, la funció "Arrossegar per instal·lar" els permet arrossegar un giny JavaFX (una aplicació que resideix en un lloc web) i deixar-lo anar al seu escriptori. L'aplicació no perdrà el seu estat o context fins i tot després de tancar el navegador. També es pot tornar a iniciar una aplicació fent clic a una drecera que es crea automàticament a l'escriptori de l'usuari. Aquest comportament està activat de manera immediata pel mecanisme d'applet de Java des de l'actualització de Java 6u10, i JavaFX l'aprofita des de la capa Java subjacent. Sun promociona "arrossegar per instal·lar" com l'obertura d'un nou model de distribució i que permet als desenvolupadors "desvincular-se del navegador".
JavaFX 1.x inclou un conjunt de complements per a Adobe Photoshop i Illustrator que permeten integrar gràfics avançats directament a les aplicacions JavaFX. Els complements generen codi JavaFX Script que conserva les capes i l'estructura dels gràfics. Els desenvolupadors poden afegir animacions o efectes als gràfics estàtics importats. També hi ha una eina de conversió de gràfics SVG (també coneguda com Media Factory) que permet importar gràfics i previsualitzar els actius després de la conversió al format JavaFX.
Abans de la versió 2.0 de JavaFX, els desenvolupadors utilitzaven un llenguatge declaratiu escrit estàticament anomenat JavaFX Script per crear aplicacions JavaFX. Com que JavaFX Script es va compilar amb el codi de bytes de Java, els programadors també podrien utilitzar codi Java. Les aplicacions JavaFX anteriors a la 2.0 podien executar-se en qualsevol escriptori que pogués executar Java SE, igual que passa amb les versions actuals.
JavaFX 2.0 i posteriors s'implementa com a biblioteca Java, i les aplicacions que utilitzen JavaFX s'escriuen en codi Java normal. El llenguatge de script va ser abandonat per Oracle, però el seu desenvolupament va continuar durant uns quants anys en el projecte Visage, i finalment va acabar el 2013.
Sun Microsystems va llicenciar un tipus de lletra personalitzat anomenat Amble per utilitzar-lo en dispositius amb tecnologia JavaFX. La família de tipus de lletra va ser dissenyada per l'especialista en disseny d'interfície d'usuari mòbil Punchcut i està disponible com a part de la versió 1.3 de JavaFX SDK.

## Components

La plataforma JavaFX inclou els components següents:
* L'SDK de JavaFX: inclou, entre altres coses, gràfics, serveis multimèdia, biblioteques de text enriquit i la vista web.
* NetBeans IDE per a JavaFX: NetBeans amb paleta d'arrossegar i deixar anar per afegir objectes amb transformacions, efectes i animacions a més d'un conjunt de mostres i bones pràctiques. Per als usuaris d'Eclipse, hi ha un connector compatible amb la comunitat allotjat a e(fx)clipse.
* JavaFX Scene Builder: es va introduir per a JavaFX 2.1 i posteriors. Es crea una interfície d'usuari (UI) arrossegant i deixant anar els controls d'una paleta. El disseny es desa com a fitxer FXML, que és un format XML especial.

## Referències

* ↑ «JavaFX Developer Home» (en anglès). www.oracle.com. Arxivat de l'original el 2019-07-12. [Consulta: 14 juny 2019].
* ↑ Smith, Donald. «The Future of JavaFX and Other Java Client Roadmap Updates» (en anglès), 07-03-2018. Arxivat de l'original el 17 novembre 2018. [Consulta: 14 juny 2019].
* ↑ «Rapid Enterprise Mobile Apps: Build, Connect, Manage with Gluon» (en anglès), 16-12-2017. Arxivat de l'original el 2017-12-15. [Consulta: 16 desembre 2017].
* ↑ «JavaFX Overview (Release 8)» (en anglès). docs.oracle.com. Arxivat de l'original el 2021-10-21. [Consulta: 26 desembre 2021].
* ↑ «Google Code Archive - Long-term storage for Google Code Project Hosting» (en anglès). Code.google.com. Arxivat de l'original el 2016-04-01. [Consulta: 1r agost 2016].
* ↑ «Visage Language» (en anglès). GitHub. Arxivat de l'original el 2023-07-07. [Consulta: 6 juliol 2023].