JavaFX
VývojářOracle Corporation
Aktuální verze21.0.1 (říjen 2023)
Operační systémmultiplatformní
Vyvíjeno vJava
Typ softwaruRich Internet applications
LicenceOpen source
Webopenjfx.io
Některá data mohou pocházet z datové položky.

JavaFX je softwarová platforma postavená na bázi platformy Java z dílny společnosti Sun Microsystems. Slouží pro vývoj tzv. RIA aplikací (Rich Internet applications), v překladu bohatých internetových aplikací. Jak již z názvu vyplývá, jedná se především o prvky zajišťující interaktivitu webových stránek, tedy stránek, které s uživatelem, oproti těm statickým, nějakým způsobem komunikují. V případě JavaFX webových aplikací, které se formou pluginu spouští z prohlížeče, navíc platforma umožňuje si aplikaci stáhnout a využívat ji jako klasický desktopový program a to i v offline módu. JavaFX je cílena na vývojáře programů toužících po rychlém a snadném vývoji pro desktopy, internetové prohlížeče, ale i rychle rozvíjející se mobilní oblast. Vznikla jako reakce na masové rozšíření platforem jako je Adobe Flash a především Microsoft Silverlight.

Před verzí JavaFX 2.0 se k vývoji na platformě používal staticky typovaný deklarativní skriptovací jazyk JavaFX Script. Od této verze je JavaFX implementována jako nativní Java knihovna a aplikace v JavaFX jsou proto programovány v Javě. JavaFX Script již dále není podporován. Oracle to vysvětluje tím, že můžeme použít ostatní skriptovací jazyky podporující JVM, jako Groovy nebo Scala.[1]

JavaFX v  březnu roku 2014 zcela nahradil zastaralý Swing, jako nástroj pro tvorbu GUI v Javě.

Vlastnosti

[editovat | editovat zdroj]

Platforma byla navržena tak, aby se její uživatelé mohli místo kódování soustředit na kreativní část práce. Mimo jiné nabízí také velmi dobrou podporu pro používání multimediálních prvků, ať už jde o video, audio, animace, atd. Konkurenční výhodu přináší také přenositelnost mezi platformami – JavaFX koresponduje s heslem „Write once, run anywhere“. To znamená, že aplikace naprogramované na platformě JavaFX můžete spouštět na kterémkoliv prostředí, kde běží JRE (Java Runtime Environment). Od verze 2.2 je možné pomocí Native Packaging zabalit aplikaci tak aby se dalo nainstalovat a spustit bez nutnosti nainstalovaného JRE.

V současnosti je JavaFX oficiálně plně podporována operačními systémy Windows XP, Vista, Windows 7, Windows 8, macOS a Linux. U mobilních zařízení lze spouštět aplikace na Androidu, systému Windows Mobile a dalších příslušných OS.

Vývoj

[editovat | editovat zdroj]

Nástroje

[editovat | editovat zdroj]

Pro vývoj v JavaFX se používá například vývojové prostředí NetBeans IDE nebo Eclipse, které jsou zdarma. Na rozdíl od IntelliJ IDEA je naopak placeným prostředím. Zde jsou uvedené pouze tři nejpoužívanější prostředí, ale je jich mnohem víc a záleží na vývojáři, které z nich bude vyhovovat nejvíce. NetBeans IDE je k dispozici na stránkách Oraclu a dá se stáhnout společně s JDK.

Pomocí nástroje Java FX scene builder je možné navrhovat uživatelské rozhraní stylem „táhni a pusť“z angl. drag and drop). Výstup je ukládán do souboru typu FXML (nástavba XML).

Nasazení aplikací

[editovat | editovat zdroj]

JavaFX platformu je možné nasadit následujícími způsoby:

Historie

[editovat | editovat zdroj]

JavaFX Script, skriptovací jazyk JavaFX přišel s projektem od Chrise Olivera a nazýval se F3.  Sun Microsystems poprvé oznámily JavaFX na celosvětové konferenci Java Developerů JavaOne v květnu 2007.  Rok poté v květnu 2008 Sun Microsystems oznámili plán na vydání JavaFX pro prohlížeče a desktopy ve třetí čtvrtině roku 2008. JavaFX pro mobily v druhé čtvrtině roku 2009. Také oznámili několikaletou dohodu s On2 Technologies na jejich rozsáhlé grafické kapacity, které se přidali do JavaFX a tím umožnili pracovat s TrueMotion Video Codec. Koncem července 2008 si mohli developeři stáhnout zkušební verzi JavaFX SDK pro Windows a Macintosh a zároveň s JavaFX pluginem pro IDE NetBeans 6.1.  Důležité uvolnění verze od JavaFX 1.1 má název založen na názvu ulice nebo sousedství v San Francisku. Vydané update většinou tento název nenesou.

JavaFX jako open source

[editovat | editovat zdroj]

V říjnu 2011 Oracle oznámil záměr poskytnutí JavaFX toolkit open Source komunitě a v listopadu téhož roku byla JavaFX připojena do OpenJDK komunity. Od té doby je OpenJFX kompletně open source. 

OpenJFX je takzvaná, next generation client aplikace pro desktopy a další systémy. Každý kdo se chce zúčastnit vývoji aplikace má příležitost a může se jednat o vytvoření portů nebo třeba přidání nové vlastnosti atd.

Více informací se dozvíte na oficiální wiki OpenJDK (https://wiki.openjdk.java.net/display/OpenJFX/Main), která je jenom v angličtině.

JavaFX nahrazuje swing

[editovat | editovat zdroj]

Důvody

[editovat | editovat zdroj]

Zastaralá technologie zavedena v 90. letech.  Která nepodporuje nové technologické prvky: 

Klíčové rysy JavaFX

[editovat | editovat zdroj]

SceneGraph 

[editovat | editovat zdroj]

Příklad vytvoření aplikace

[editovat | editovat zdroj]
 ''//importy''

 import javafx.application.Application; 
 import javafx.event.ActionEvent; 
 import javafx.scene.Scene; 
 import javafx.scene.control.Button; 
 import javafx.scene.layout.Pane; 
 import javafx.scene.shape.Rectangle; 
 import javafx.stage.Stage; 

 //Třída dědí od abstraktní třídy aplikace 

 public class SceneGraphStruktura extends Application {
     /** 
      * @param args the command line arguments 
      */ 
     public static void main(String[] args) { 
 //        spouštěcí metoda aplikace 
 
         launch(args); 
     }      

     @Override 
     public void start(Stage primaryStage) { 
        
 //    vytvoření tlačítka 
         Button btn = new Button(); 
 //        nastaví tlačítku nápis  
         btn.setText("Nakresli čtverec"); 
          
 //    vytvoří kořenový node (tzv. root) 
         Pane root = new Pane(); 
  
 //   Přidá se tlačítko do rootu a zobrazí 
 //   Kdyby se node nepřidal do Pane (nebo jiného plátna) tak by se nevykreslil  (nebyl by nastavený rodičovský prvek) 
         root.getChildren().add(btn); 
         
 //   nastavení události při stisknutí tlačítka pomocí lambda výrazů, které zjednodušují anonymní třídy(Viz JAVA 8) 
          btn.setOnAction((ActionEvent event) -> { 
               
 //    vytvoří čtverec (x,y, šířka, výška) 
             Rectangle rec=new Rectangle(100,100,50,50); 
              
 //    přidá čtverec do rootu 
             root.getChildren().add(rec); 
         }); 
  
 //   vytvoření scénu ve které se bude všechno z rootu vykreslovat.
         Scene scene = new Scene(root, 300, 250); 
 
 //   nastaví Stage(okno) nadpis  
         primaryStage.setTitle("Ukázka"); 
 
 //   nastaví do Stage scénu         
 
         primaryStage.setScene(scene); 
 
 //   zobrazí stage  
         primaryStage.show(); 
     } 
 }

CSS

[editovat | editovat zdroj]

JavaFX dává k dispozici skinování komponentů pomocí CSS. Používá vlastní atributy v CSS například pro vyplnění barvou (příklad:  .vyplnBarvou { -fx-fill: red }). To vyžaduje od grafika, aby se naučil tyto nové atributy a mohl je používat. Skinování zatím nepodporuje animování. Pro rozpoznání každý atribut pro FX začíná -fx-.

Nedostatky

[editovat | editovat zdroj]

JFX je stále ve vývoji a s každou novou verzí přibývají různé nové prvky. Chybí ji důležité prvky pro vyvíjení aplikací na mobily jako například geolokace, orientace zařízení nebo natáčení kamerou.  Při přehrávání videa nebo zvuku mohou být použité pouze kodeky, které licencuje Oracle.

Reference

[editovat | editovat zdroj]
  1. JavaFX Frequently Asked Questions [online]. oracle [cit. 2013-08-23]. Kapitola 8. Does JavaFX 2 support JavaFX Script?. Dostupné online. (anglicky) 

Související články

[editovat | editovat zdroj]

Externí odkazy

[editovat | editovat zdroj]