JavaFX - JavaFX
| Utvecklare | Sun Microsystems (nu förvärvat av Oracle Corporation ) |
|---|---|
| Första utgåvan | 4 december 2008 |
| Stabil frisättning | 16 / mars 2021
|
| Förvar |
|
| Operativ system | Java Runtime-miljö |
| Plattform | Tvärplattform |
| Tillgänglig i | Java |
| Typ | Applikationsram |
| Licens | GPL + -länkande undantag , öppen källkod |
| Hemsida |
wiki |
| Java plattform upplagor |
|---|
|
JavaFX är en mjukvaruplattform för att skapa och leverera stationära applikationer , såväl som rika webbapplikationer som kan köras över ett stort antal enheter. JavaFX har stöd för stationära datorer och webbläsare på Microsoft Windows , Linux och macOS , samt mobila enheter som kör iOS och Android .
På skrivbord stöder JavaFX operativsystemen Windows Vista , Windows 7 , Windows 8 , Windows 10 , macOS och Linux . Från och med JavaFX 1.2 har Oracle släppt betaversioner för OpenSolaris . På mobilen kan JavaFX Mobile 1.x köras på flera mobila operativsystem , inklusive Symbian OS , Windows Mobile och egna realtidsoperativsystem .
JavaFX var avsett att ersätta Swing som standard GUI- bibliotek för Java SE , men det har tappats från nya standardutgåvor medan Swing och AWT förblir inkluderade, förmodligen för att JavaFXs marknadsandel har "urholkats av ökningen av" mobil först "och" webb första applikationerna. " Med lanseringen av JDK 11 2018 gjorde Oracle JavaFX till en del av OpenJDK under OpenJFX- projektet för att öka takten i dess utveckling. Oracle-stöd för JavaFX är också tillgängligt för Java JDK 8 till och med mars 2025.
Öppen källkod JavaFXPorts fungerar för iOS (iPhone och iPad) och Android och inbäddad ( Raspberry Pi ); och den relaterade kommersiella programvaran som skapats under namnet "Gluon" stöder samma mobilplattformar med ytterligare funktioner plus skrivbord. Detta gör det möjligt för en enda källkodsbas att skapa applikationer för stationära, iOS- och Android-enheter.
Funktioner
JavaFX 1.1 baserades på konceptet med en "gemensam profil" som är avsedd att spänna över alla enheter som stöds av JavaFX. Detta tillvägagångssätt gör det möjligt för utvecklare att använda en gemensam programmeringsmodell medan de bygger en applikation riktad för både stationära och mobila enheter och att dela mycket av koden, grafikresurserna och innehållet mellan stationära och mobila versioner. För att tillgodose behovet av att ställa in applikationer på en viss enhetsklass, innehåller JavaFX 1.1-plattformen API: er som är stationära eller mobilspecifika. Till exempel inkluderar JavaFX Desktop-profilen Swing och avancerade visuella effekter.
För slutanvändaren möjliggör funktionen "Dra-till-installation" dem att dra en JavaFX-widget - ett program som finns på en webbplats - och släppa det på skrivbordet. Applikationen kommer inte att förlora sitt tillstånd eller sitt sammanhang även efter att webbläsaren är stängd. En applikation kan också startas om genom att klicka på en genväg som skapas automatiskt på användarens skrivbord. Detta beteende aktiveras direkt från Java-appletmekanismen sedan Java 6u10-uppdateringen och utnyttjas av JavaFX från det underliggande Java-lagret. Sun visar "Drag-to-Install" som öppning av en ny distributionsmodell och låter utvecklare "bryta sig loss från webbläsaren".
JavaFX 1.x inkluderade en uppsättning plugin-program för Adobe Photoshop och Illustrator som gör det möjligt att integrera avancerad grafik direkt i JavaFX-applikationer. Plug-ins genererar JavaFX Script-kod som bevarar grafikens lager och struktur. Utvecklare kan sedan lägga till animering eller effekter i den importerade statiska grafiken. Det finns också ett SVG-grafikomvandlarverktyg (även känt som Media Factory) som gör det möjligt att importera grafik och förhandsgranska tillgångar efter konverteringen till JavaFX-format.
Innan version 2.0 av JavaFX använde utvecklare ett statiskt skrivet, deklarativt språk som heter JavaFX Script för att bygga JavaFX-applikationer. Eftersom JavaFX Script kompilerades till Java bytecode kunde programmerare också använda Java- kod istället. JavaFX-applikationer kan köras på vilket skrivbord som helst som kan köra Java SE eller på vilken mobiltelefon som helst som kan köra Java ME .
JavaFX 2.0 och senare implementeras som ett "inbyggt" Java-bibliotek, och applikationer som använder JavaFX skrivs i "inbyggd" Java-kod. JavaFX Script har skrotats av Oracle, men utvecklingen fortsätter i Visage-projektet. JavaFX 2.x stöder inte operativsystemet Solaris eller mobiltelefoner ; emellertid planerar Oracle att integrera JavaFX till Java SE Embedded 8 och Java FX för ARM- processorer är i utvecklingsfas.
Sun Microsystems licensierade en anpassad typsnitt som heter Amble för användning på JavaFX-drivna enheter. Typsnittet designades av mobila användare interface design specialister Punchcut och finns som en del av JavaFX SDK 1.3 Release.
WebView
WebView, den inbäddade webbläsarkomponenten, stöder följande HTML5-funktioner:
- Duk
- Uppspelning av media
- Formkontroller (förutom <input type = "color">)
- Redigerbart innehåll
- Historikunderhåll
- Stöd för taggarna <meter> och <progress>
- Stöd för taggarna <detaljer> och <summary>
- DOM
- MathML
- SVG
- CSS
- JavaScript
- Stöd för domännamn skrivna på nationella språk
JavaFX Mobile
JavaFX Mobile var implementeringen av JavaFX-plattformen för rika webbapplikationer riktade till mobila enheter . JavaFX Mobile 1.x-applikationer kan utvecklas på samma språk, JavaFX Script , som JavaFX 1.x-applikationer för webbläsare eller skrivbord och med samma verktyg: JavaFX SDK och JavaFX Production Suite. Detta koncept gör det möjligt att dela kodbaserade och grafiska tillgångar för stationära och mobila applikationer. Genom integration med Java ME har JavaFX-applikationerna tillgång till funktioner för den underliggande handenheten, såsom filsystem , kamera, GPS , bluetooth eller accelerometer .
En oberoende applikationsplattform byggd på Java, JavaFX Mobile kan köras på flera mobila operativsystem, inklusive Android , Windows Mobile och egna realtidsoperativsystem .
JavaFX Mobile var allmänt tillgängligt som en del av JavaFX 1.1-utgåvan som tillkännagavs av Sun Microsystems den 12 februari 2009.
Sun planerade att möjliggöra out-of-the-box-stöd för JavaFX på enheterna genom att arbeta med tillverkare av mobiltelefoner och mobiloperatörer för att förinstallera JavaFX Mobile-körtiden på telefonerna. JavaFX Mobile som körs på en Android demonstrerades vid JavaOne 2008 och utvalda partnerskap (inkl. LG Electronics , Sony Ericsson ) tillkännagavs vid lanseringen av JavaFX Mobile i februari 2009.
Komponenter
JavaFX 2.x-plattformen innehåller följande komponenter:
- JavaFX SDK : runtime-verktyg. Grafik, mediatjänster och rich text-bibliotek. Java FX 1.x inkluderade också JavaFX-kompilator, som nu är föråldrad eftersom JavaFX-användarkod skrivs i Java.
- NetBeans IDE för JavaFX: NetBeans med dra-och-släpp-palett för att lägga till objekt med transformationer, effekter och animationer plus en uppsättning prover och bästa praxis. För JavaFX 2-stöd behöver du minst NetBeans 7.1.1. För Eclipse-användare finns det ett community-stödt plugin värd för e (fx) clipse.
- JavaFX scenbyggare: Detta introducerades för Java FX 2.1 och senare. Ett användargränssnitt (UI) skapas genom att dra och släppa kontroller från en palett. Denna information sparas som en FXML-fil, ett speciellt XML-format.
- Verktyg och insticksprogram för kreativa verktyg (aka Production Suite): Insticksprogram för Adobe Photoshop och Adobe Illustrator som kan exportera grafiktillgångar till JavaFX Script- kod, verktyg för att konvertera SVG- grafik till JavaFX Script- kod och förhandsgranska tillgångar konverterade till JavaFX från andra verktyg (för närvarande inte stöds i JavaFX 2.x-versioner)
Historia
Tidiga utgåvor
JavaFX Script, skriptkomponenten i JavaFX, började livet som ett projekt av Chris Oliver som heter F3.
Sun Microsystems tillkännagav först JavaFX vid JavaOne Worldwide Java Developer-konferensen i maj 2007.
I maj 2008 tillkännagav Sun Microsystems planer på att leverera JavaFX för webbläsaren och skrivbordet under tredje kvartalet 2008, och JavaFX för mobila enheter under andra kvartalet 2009. Sun tillkännagav också ett flerårigt avtal med On2 Technologies för att ge omfattande videofunktioner till JavaFX-produktfamiljen med företagets TrueMotion Video-codec . Sedan slutet av juli 2008 kunde utvecklare ladda ner en förhandsgranskning av JavaFX SDK för Windows och Macintosh samt JavaFX-plugin för NetBeans 6.1 .
Stora utgåvor sedan JavaFX 1.1 har ett släppnamn baserat på en gata eller stadsdel i San Francisco . Uppdateringsversioner har vanligtvis inget release-namn.
Den 4 december 2008 släppte Sun JavaFX 1.0.2.
JavaFX för mobilutveckling gjordes äntligen tillgängligt som en del av JavaFX 1.1-utgåvan (heter Franca) som tillkännagavs officiellt den 12 februari 2009.
JavaFX 1.2 (med namnet Marina) släpptes på JavaOne den 2 juni 2009. Denna release introducerade:
- Betastöd för Linux och Solaris
- Inbyggda kontroller och layouter
- Skinnable CSS- kontroller
- Inbyggd diagram widgets
- JavaFX I / O- hantering, maskerar skillnader mellan stationära och mobila enheter
- Hastighetsförbättringar
- Windows Mobile Runtime med Sun Java Wireless Client
JavaFX 1.3 (som heter Soma) släpptes den 22 april 2010. Denna release introducerade:
- Prestanda förbättringar
- Stöd för ytterligare plattformar
- Förbättrat stöd för användargränssnittskontroller
JavaFX 1.3.1 släpptes den 21 augusti 2010. Denna version introducerade:
- Snabb starttid för JavaFX-applikationen
- Anpassad förloppsindikator för applikationsstart
JavaFX 2.0 (med namnet Presidio) släpptes den 10 oktober 2011. Denna release introducerade:
- En ny uppsättning Java API: er som öppnar JavaFX-funktioner för alla Java-utvecklare, utan att de behöver lära sig ett nytt skriptspråk. Java FX-skriptstöd tappades permanent.
- Stöd för högpresterande lat bindning, bindningsuttryck, bundna sekvensuttryck och partiell bindningsbedömning.
- Tappar stöd för JavaFX Mobile .
- Oracle tillkännager sin avsikt att öppna JavaFX med källkod.
- JavaFX runtime blir plattformsspecifik, med systemfunktioner som videokodek tillgänglig på systemet; istället för att implementera endast en plattformsövergripande körtid som med JavaFX 1.x.
Olika förbättringar har gjorts inom JavaFX-biblioteken för multithreading. Task-API: erna har uppdaterats för att stödja mycket mer kortfattad trådningsfunktion (dvs JavaTaskBase-klassen är inte längre nödvändig eftersom alla API: er finns i Java, och kravet på att ha ett återuppringningsgränssnitt och Java-implementeringsklass är inte längre nödvändigt). Dessutom har scengrafen utformats så att scener kan konstrueras på bakgrundstrådar och sedan fästas till "live" -scener på ett trådsäkert sätt.
Den 26 maj 2011 släppte Oracle JavaFX 2.0 Beta. Betaversionen gjordes endast tillgänglig för 32- och 64-bitarsversioner av Microsoft Windows XP, Windows Vista och Windows 7. En Early Access-version för Mac OS X var också tillgänglig för medlemmar i JavaFX Partner-programmet vid den tiden, medan Linux-support var planerad för en framtida release av JavaFX. JavaFX 2.0 släpptes med endast Windows-stöd. Mac OS X-stöd lades till med JavaFX 2.1. Linux-stöd lades till med JavaFX 2.2.
JavaFX 2.0 använder sig av ett nytt deklarativt XML-språk som heter FXML .
Den 27 april 2012 släppte Oracle version 2.1 av JavaFX, som innehåller följande huvudfunktioner:
- Första officiella versionen för OS X (endast skrivbord)
- H.264 / MPEG-4 AVC och Advanced Audio Coding stöd
- CoolType- text
- UI-förbättringar inklusive kombinationsruta kontroller, diagram (staplade diagram) och menyrader
- Webview-komponenten tillåter nu JavaScript att ringa till Java-metoder
Den 14 augusti 2012 släppte Oracle version 2.2 av JavaFX, som innehåller följande huvudfunktioner:
- Linux-stöd (inklusive plugin och webbstart)
- Duk
- Nya kontroller: Color Picker, Pagination
- HTTP Live Streaming-stöd
- Peka på händelser och gester
- Bildmanipulerings-API
- Inbyggd förpackning
JavaFX 2.2 lägger till ett nytt förpackningsalternativ kallat Native Packaging, vilket möjliggör förpackning av en applikation som ett "native bundle". Detta ger användarna ett sätt att installera och köra en applikation utan externa beroenden på ett system JRE eller FX SDK.
Från och med Oracle Java SE 7 uppdatering 6 och Java FX 2.2 är JavaFX buntad för att installeras med Oracle Java SE-plattform.
Släpp efter version bump
JavaFX är nu en del av JRE / JDK för Java 8 (släppt 18 mars 2014) och har samma numrering, dvs JavaFX 8.
JavaFX 8 lägger till flera nya funktioner, inklusive:
- Stöd för 3D-grafik
- Sensorstöd
- MathML-stöd, med JavaFX 8 Update 192
- Utskrift och stöd för rik text
- Generiska dialogmallar genom att inkludera ControlsFX för att ersätta JOptionPane från JavaFX 8u40
JavaFX 9-funktioner var centrerade om att extrahera några användbara privata API: er från JavaFX-koden för att göra dessa API: er offentliga:
- JEP 253: Förbered JavaFX UI-kontroller och CSS-API: er för modularisering
Oracle meddelade sin avsikt att sluta leverera JavaFX med JDK 11 och senare. Den levereras inte längre med den senaste versionen.
JavaFX 11 levererades först i september 2018.
- JavaFX 11.0.2 är den senaste offentliga versionen av JavaFX 11.
- JavaFX 11.0.3 är den senaste versionen av JavaFX 11 för dem med ett långsiktigt supportavtal.
- MathML-stöd, med JavaFX 11
- FX Robot API
JavaFX 12 levererades först i mars 2019.
- JavaFX 12.0.1.
JavaFX 13 levererades i september 2019.
JavaFX 14 släpptes i mars 2020.
JavaFX 15 släpptes i september 2020.
JavaFX 16 är den senaste versionen som lanserades i mars 2021.
Framtida arbete
Oracle tillkännagav också i november 2012 den öppna sourcing av Decora, ett DSL Shader-språk för JavaFX som gör det möjligt att generera Shaders för OpenGL och Direct3D .
Oracle skrev i sin Client Support Roadmap att JavaFX nya korrigeringar kommer att fortsätta att stödjas på Java SE 8 till mars 2025. Oracle meddelade tidigare att de "arbetar med intresserade tredje parter för att göra det lättare att bygga och underhålla JavaFX som en separat distribuerbar öppen källkodsmodul. " JavaFX kommer att fortsätta att stödjas i framtiden av företaget Gluon som en nedladdningsbar modul utöver JDK.
Tillgänglighet
Från och med mars 2014 distribueras JavaFX på Microsoft Windows , OS X och Linux . Oracle har en intern JavaFX-port på iOS och Android . Stöd för ARM är tillgängligt från och med JavaFX 8 Den 11 februari 2013 meddelade Richard Bair, chefarkitekt för Client Java Platform på Oracle, att Oracle skulle öppna källkod för iOS- och Android-implementeringar av sin JavaFX-plattform de närmaste två månaderna.
Från och med version 8u33 av JDK för ARM har stöd för JavaFX Embedded tagits bort.
Support fortsätter för x86-baserade arkitekturer.
En kommersiell port av JavaFX för Android och iOS har skapats under namnet "Gluon".
Licens
Det finns olika licenser för modulerna som komponerar JavaFX-körtiden:
- Delar av kärnan JavaFX runtime är fortfarande proprietär programvara och dess kod har ännu inte släppts för allmänheten, men utvecklare och chefer bakom tekniken går mot en fullständig öppning av koden,
- JavaFX-kompilatorn och en äldre version av 2D- scengrafen släpps under en GPL v2- licens,
- De NetBeans plugin för JavaFX är dubbelt licensierad under GPL v2 och CDDL .
Under utvecklingen förklarade Sun att de kommer att lansera sin strategi för JavaFX licensieringsmodell för JavaFX första release. Efter släppet 2008 förklarade Jeet Kaul , Suns vice vd för klientprogramvara, att de snart kommer att publicera en specifikation för JavaFX och dess tillhörande filformat och kommer att fortsätta att öppna källkoden för JavaFX och koppla bort denna kärna från den egna delar som licensierats av externa parter.
Vid JavaOne 2011 meddelade Oracle Corporation att JavaFX 2.0 skulle bli öppen källkod. Sedan december 2011 började Oracle öppna JavaFX-koden under undantaget GPL + .
I december 2012 öppnades nya delar av JavaFX-källkoden av Oracle:
- klasserna animationer och tidslinjer
- mekanismen för leverans av evenemang och andra olika kärnklasser
- renderar trädgränssnittet och implementeringen av detta gränssnitt
- geometri och former implementering
- Java-delen av renderingsmotorn som används i rendering pipeline
- loggningsstödet
Se även
Referenser
Bibliografi
- Vos, Johan; Gao, Weiqi; Haka, Stephen; Iverson, dekan; Weaver, James L. (27 juli 2014). Pro JavaFX 8: En definitiv guide för att bygga stationära, mobila och inbäddade Java-klienter . Apress . sid. 616. ISBN 978-1-4302-6574-0 .
- Weaver, James L.; Gao, Weiqi; Haka, Stephen; Iverson, dekan; Vos, Johan (6 mars 2012). Pro JavaFX 2: En definitiv guide till rika kunder med Java-teknik . Apress . sid. 640. ISBN 978-1-4302-6872-7 .
- Ebbers, Hendrik (7 juli 2014). Behärska JavaFX 8-kontroller . McGraw-Hill utbildning . sid. 336. ISBN 978-0071833776 .
- Vivien, Vladimir (25 augusti 2010). JavaFX 1.2 applikationsutveckling kokbok . Packt Publishing . sid. 332. ISBN 978-1-84719-894-5 .
- Jordan, Lucas (17 december 2009). JavaFX Special Effects: Att ta Java RIA till det extrema med animerings-, multimedia- och spelelement . Apress . sid. 300. ISBN 978-1-4302-2623-9 .
- Morris, Simon (23 november 2009). JavaFX i aktion . Bemanning . sid. 375. ISBN 978-1-933988-99-3 .
- Topley, Kim (12 oktober 2009). JavaFX Developer's Guide . Addison-Wesley Professional . sid. 640. ISBN 978-0-321-60165-0 .
- Weaver, James L.; Gao, Weiqi; Haka, Stephen; Iverson, Dean (22 juni 2009). Pro JavaFX Platform: Script, Desktop och Mobile RIA med Java Technology . Apress . sid. 500. ISBN 978-1-4302-1875-3 .
- Clarke, Jim; Connors, Jim; J. Bruno, Eric (15 juni 2009). JavaFX: Utveckla rika internetapplikationer . Prentice Hall . sid. 384. ISBN 978-0-13-701287-9 .
- Anderson, Gail; Anderson, Paul (15 juni 2009). Viktig JavaFX . Prentice Hall . sid. 360. ISBN 978-0-13-704279-1 .
- Weaver, James L. (4 maj 2009). JavaFX Script: Dynamiskt Java Scripting för rika Internet- / klientsidan . Apress . sid. 200. ISBN 978-1-59059-945-7 .