Lekce 1 - Úvod do JavaFX
V tomto Java tutoriálu se naučíme vytvářet okenní (formulářové) aplikace v JavaFX. Naučíme se pracovat s tlačítky, textovými poli, tabulkami, ale i obrázky nebo např. grafy.
Pro absolvování kurzu nebudeme potřebovat žádné pokročilé znalosti, postačí nám alespoň základy objektově orientovaného programování v Javě.
API pro GUI v Javě
V Javě máme k dispozici minimálně čtyři možnosti, jak vytvářet grafické aplikace. Jsou to především tyto knihovny a frameworky:
- AWT - Abstract Window Toolkit (AWT) je původní, nejstarší, javovská knihovna pro vytváření aplikací s GUI.
- Swing - Framework Swing slouží jako náhrada za AWT. Momentálně je asi nejpopulárnějším javovským frameworkem pro GUI aplikace. Je to hlavně proto, že je přímo součástí standardní knihovny Javy, takže je jeho použití přímočaré. Zájemce odkážu na náš seriál kurzů, ve kterém se můžete s frameworkem Swing naučit pracovat.
- JavaFX - My se v kurzu budeme věnovat frameworku JavaFX, který vznikl jako modernější náhrada za Swing.
- SWT - Zmiňme ještě projekt firmy IBM - Standard Widget Toolkit, který převzala Eclipse Foundation. Po SWT můžeme sáhnout, pokud pracujeme v Eclipse IDE, jeho výhodou je zejména využití nativního kódu.
JavaFX
JavaFX je moderní framework pro tvorbu bohatých okenních aplikací. Bohatých je zde myšleno vizuálně. JavaFX přináší podporu obrázků, videa, hudby, grafů, CSS stylů a dalších technologií, které zajistí, že výsledná aplikace je opravdu líbivá. Zároveň je kladen důraz na jednoduchost tvorby. Všechny zmiňované věci má JavaFX v základu. Platformu JavaFX můžeme použít pro desktopové aplikace, webové applety nebo mobilní aplikace.
JavaFX vs. Swing
JavaFX byla původně zamýšlena jako náhrada za Swing, ale firma Oracle se nakonec rozhodla její vývoj ukončit a předat jej open-source komunitě, která postupně JavaFX vylepšuje. Změnily se i její oficiální stránky, nově najdete potřebnou dokumentaci na openjfx.io.
Od Javy verze 11 již není JavaFX součástí JDK. Abychom v ní mohli vyvíjet, je ji třeba přidat do projektu.
S pomocí Netbeans a Maven není žádný velký problém jednotlivé knihovny JavaFX k projektu připojit. Základní potřebné knihovny se nám automaticky přidají vybráním správného typu projektu při jeho vytváření a přidat další knihovny je díky nástroji Maven hračka. Vše si postupně ukážeme a uvidíte, že opravdu nejde o nic komplikovaného.
Gluon Scene Builder
Pro pohodlné vytváření JavaFX aplikací budeme potřebovat Scene Builder. Jde o nástroj pro vytváření uživatelského rozhraní metodou drag&drop. Je volně ke stažení na stránkách společnosti Gluon. Stáhneme si jej a nainstalujeme. S jeho pomocí pak můžeme vytvářet uživatelské rozhraní prostým přetahováním prvků z palety přímo na své místo do formuláře.
Založení JavaFX projektu
Poté, co máme nainstalován Scene Builder, si můžeme konečně vyzkoušet první JavaFX projekt.
Založme si v Netbeans projekt FXML JavaFX Maven Archetype (Gluon) z kategorie Java with Maven:
Pokud je to úplně poprvé, co daný projekt zakládáme, Netbeans si od nás vyžádá aktivaci podpory JavaFX. Klikneme na Download and Activate...:
Odsouhlasíme licenční podmínky a počkáme, až Netbeans postahuje potřebné knihovny:
Poté se nás Netbeans zeptá na jméno zakládaného
projektu, nazvěme jej třeba HelloFx
. Group Id
nastavíme na cz.itnetwork
a zkontrolujeme, zda se
Package přepsal na cz.itnetwork.hellofx
:
Dále zde máme možnosti nastavit verzi JavaFX a podobně, ale ty necháme tak jak jsou.
Poté, co klikneme na Finish, se nám vytvoří nový projekt. Zkontrolujeme si v panelu Projects, zda se nám vytvořily soubory tak, jak jsou na následujícím obrázku:
Důležité je především, abychom měli soubory App.java
,
PrimaryController.java
a SecondaryController.java
v
Source Packages balíčku cz.itnetwork.hellofx
.
Také soubory primary.fxml
a secondary.fxml
ve složce
src/main/resources/
, musí být ve stejnojmenném balíčku. V
Dependencies musí být vidět JavaFx knihovny
jako javafx-controls
a javafx-fxml
.
V horním menu, v záložce Run nejprve klikneme na Build
Project (můžeme použít klávesu F11). Pak projekt spustíme
(nejrychleji stisknutím F6). Pokud se vše podařilo, otevře se
nám okno s testovací JavaFX aplikací. Vidíme v něm jenom
nápis Primary view
a tlačítko
Switch to secondary view
, které slouží k přepínání mezi
dvěma pohledy - Primary view
a Secondary view
.
Na závěr si ještě ověříme, že se nám správně nainstaloval
Scene builder. Aplikaci zavřeme a najdeme si nový projekt v
našem počítači. Ve složce
src/main/resources/cz/itnetwork/hellofx/
máme uložený soubor
primary.fxml
. Poklepeme na něj myší a soubor otevřeme.
Napoprvé nás nejspíš Windows vyzve, abychom vybrali aplikaci, která má
soubor otevřít. V počítači najdeme, kde máme Scene
Builder nainstalovaný, zvolíme SceneBuilder.exe
a
potvrdíme. Poté se Scene Builder spustí a v něm uvidíme
náš soubor:
Gratuluji, podařilo se vám zprovoznit JavaFX na vašem počítači.
V příští lekci, FXML a první formulářová aplikace v JavaFX, si rozebereme aplikaci vytvořenou v dnešní lekci, a poté ji upravíme do klasické Hello World aplikace.