Letní akce Python týden
Pouze tento týden sleva až 80 % na kurzy Python. Lze kombinovat s akcí Letní slevy na prémiový obsah!
Brno? Vypsali jsme pro vás nové termíny školení Základů programování a OOP v Brně!

Lekce 1 - Úvod do JavaFX

Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem.
Vydávání, hosting a aktualizace umožňují jeho sponzoři.

V tomto Java on-line kurzu 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 nepotřebujete žádné pokročilé znalosti. Předpokládám však, že znáte alespoň základy objektově orientovaného programování v Javě.

API pro GUI v Javě

V Javě máme k dispozici hned 4 možnosti, jak vytvářet grafické aplikace. Jsou to:

  • AWT - nejstarší, relativně rychlé API, které je ale navázáno na volání systémového API
  • Swing - využívá vlastní vykreslování, které je celé napsané v Javě a nezávislé na konkrétní platformě (naše aplikace vypadá všude stejně), je samozřejmě pomalejší, ale uživatelsky přívětivější
  • SWT - vytvořeno firmou IBM, využité v Eclipse, jednodušší než Swing, využívá nativní kód
  • JavaFX - modernější náhrada za Swing, který je velmi rozšířený, ale neumožňuje tolik uzpůsobit vzhled aplikací

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 jsou v JavaFX v základu. JavaFX se hodí jak pro desktopové aplikace, tak pro webové applety nebo mobilní aplikace.

JavaFX vs. Swing

JavaFX se stala součástí standardní Javy ve verzi 8. Všichni doufali, že postupem času nahradí Swing a zastane funkci hlavního API pro desktop v Javě. V JavaFX sice vzniklo velké množství nových aplikací, firma Oracle se ovšem rozhodla její vývoj ukončit a předat jej open-source komunitě, která postupně JavaFX vylepšuje. Nově jsou oficiální stránky openjfx.io. To ještě není problém. Horší je, že od Javy verze 11 již JavaFX není součástí JRE/JDK. Abyste v ní mohli vyvíjet, je ji třeba doinstalovat.

Pokud jste začátečníci a chcete vytvářet jen nějaké jednoduché okenní aplikace, je možná lepší nápad použít Swing. Pokud chcete vytvořit komplexnější okenní aplikaci v Javě, jste tu dnes správně :)

Instalace JavaFX

Abychom s JavaFX mohli začít, musíme ji tedy nejprve ručně nainstalovat. Nebo, což je preferovanější způsob, ji použít jako kteroukoliv jinou knihovnu. Při použití JavaFX jako knihovny silně doporučuji používat Maven, nebo ještě lépe Gradle pro automatickou správu závislostí. Knihovny se pak lépe spravují. Odkazy na tyto technologie vedou na alternativní návody na instalaci JavaFX pro pokročilejší uživatele.

JavaFX jako knihovna

V tomto úvodním článku si ukážeme instalaci JavaFX jako knihovny pomocí IDE NetBeans, což je pro začátek nejjednodušší. Pokud vás zajímají další možnosti instalace nebo chcete rozumět tomu, co se děje pod pokličkou, připravil jsem pro vás článek Manuální instalace JavaFX.

Knihovny jsou hostované na stránkách Maven central a jsou rozděleny do následujících kategorií:

  • base - definuje základní API pro JavaFX, bindingy, property, kolekce a události
  • controls - zahrnuje všechny ovládací prvky, kterými JavaFX disponuje
  • fxml - definuje FXML API pro JavaFX
  • graphic - obsahuje hlavní API pro graf scény všech ovládacích prvků (layouty, kontejnery, životní cyklus aplikace, grafické tvary, transformace, canvas, ošetření vstupu, kreslení, zpracování obrázků), dále obsahuje API pro animace, podporu CSS stylů a další
  • media - obsahuje API pro práci se zvukem a videem
  • swing - podpora pro swingové komponenty
  • web - obsahuje API pro zobrazení webových stránek za pomoci WebView komponenty

Pro minimální konfiguraci budeme potřebovat celkem 3 knihovny: base, graphics a controls. Vytvořte si novou složku, do které stáhnete tyto tři knihovny.

Hledani potrebnych knihoven

V Maven centrálním repozitáři naleznete požadované knihovny.

Výběr správné verze knihovny

Vyberete si požadovanou verzi. Je důležité, aby jste měli stejnou verzi pro všechny moduly JavaFX.

Zobrazení všech souborů, které lze stáhnout

Přes odkaz "View all" si zobrazíte seznam všech dostupných souborů, které lze stáhnout.

Stažení knihovny se zdrojovými kódy

Stáhněte soubor jak se zdrojovými kódy (source), tak specifický podle operačního systému (Windows, Linux, MacOS).

NetBeans a JavaFX

NetBeans je k dispozici ve dvou verzích:

My budeme používat tu nejnovější, tedy verzi 10. Začneme Spuštěním NetBeans.

Úvodní obrazovka NetBeans

Vytvoření projektu

V levé horní části v menu zvolíme File -> New Project.

Průvodce novým projektem – výběr platformy

V kategorii zvolíme Java a z projektů vybereme Java Application. Nesmíte vybrat kategorii JavaFX, protože pak by bylo NetBeans zmatené. Tlačítkem Next přejdeme na další okno.

Průvodce novým projektem – název a umístění projektu

Nyní zvolíme název a umístění projektu. Tlačítkem Finish dokončíme tvorbu nového projektu.

Čistý projekt bez JavaFX

Projekt máme vytvořený, teď je potřeba přidat JavaFX knihovny.

Přidání JavaFX do NetBeans

Nejdříve si stažené JavaFX knihovny z dřívějších kroků uložte někam na bezpečné místo, odkud je nebudete mazat. Budeme totiž vytvářet Globální knihovnu pro NetBeans, kterou budeme později přidávat ke každému projektu, ve kterém budeme pracovat s JavaFX. V menu najdeme záložku Tools a zvolíme položku Libraries.

Přidání nové globální knihovny

V tomto okně klikneme na tlačítko New Library pro založení nové globální knihovny.

Pojmenování nové globální knihovny

Knihovnu pojmenujeme například JavaFX a potvrdíme tlačítkem OK.

Přidání souborů javaFX knihovny

Nyní přidáme do nově vytvořené globální knihovny odkazy na JAR soubory knihovny JavaFX. Klikneme na tlačítko Add Jar/Folder.

Výběr souborů knihovny JavaFX

Vybereme pouze "binární" soubory s knihovnou JavaFX. Nevybírejte soubory označené source, které jsme stahovali dříve. Tlačítkem Add Jar/Folder potvrdíme soubory.

Přehled vybraných JavaFX knihoven

Tlačítkem OK zavřeme dialog s globálními knihovnami. Nyní musíme přidat tuto globální knihovnu k našemu projektu.

Přidání JavaFX do projektu

Přechod do nastavení projektu

Nad červeně označenou oblastí stiskneme pravé tlačítko myši. Zobrazí se nám velký seznam možností, co lze s projektem udělat. Nás bude zajímat poslední položka Properties.

Nastavení modulepath

Otevřelo se nám okno s vlastnostmi projektu. My se nejdříve musíme přesunout do záložky Libraries. Zde musíme nastavit dvě věci: Modulepath a Classpath. Začneme nastavením Modulepath. Stiskneme červeně označené tlačítko a zobrazí se nám nové dialogové okno.

Přidání globální JavaFX knihovny do modulpath

V tomto okně vybereme naší globální JavaFX knihovnu a potvrdíme tlačítkem OK.

Přidání globální JavaFX knihovny do classpath

Nyní stiskneme druhé tlačítko pro výběr souborů, které se připojí do Classpath.

Přidání globální JavaFX knihovny do classpath

Opět vybereme pouze "binární" soubory, ne zdrojové. Tlačítkem OK vše potvrdíme a dialog zmizí.

Přehled přidaných knihoven do projektu

Knihovnu máme přidanou, můžeme tedy stisknout tlačítko OK pro uložení změn. Nyní jsme úspěšně připojili JavaFX knihovnu do projektu.

Testovací projekt

Abychom si vše otestovali, vložíme do třídy Main testovací kód pro otestování funkčnosti. Pro jistotu ho znovu uvedu:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class HelloNetbeans extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage stage) throws Exception {
        String javaVersion = System.getProperty("java.version");
        String javafxVersion = System.getProperty("javafx.version");
        Label l = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + ".");
        Scene scene = new Scene(new StackPane(l), 640, 480);
        stage.setScene(scene);
        stage.show();
    }
}
Spuštění projektu

Nyní se pokusíme projekt spustit. Přesuneme se myší opět nad červeně vyznačenou oblast, stiskneme pravé tlačítko a z nabídky vybereme možnost Run.

Projekt se nepodaří zkompilovat a IDE zobrazí následující hlášku:

Chybová hláška při prvním spuštění

Abychom chybu odstranili, musíme se přesunout opět do nastavení projektu, tentokrát ale do záložky Run.

Přidání parametrů pro Java Virtual Machine

Do červeně označeného místa vložíme následující text:

--add-modules=javafx.controls

V budoucnu budeme nepochybně potřebovat přidat ještě další části JavaFX knihovny. Pro přidání upravíte globální knihovnu, přidáte soubory a do textu výše přidáte nový modul, např.: javafx.controls. Jednotlivé moduly se oddělují znakem ,.

Vložení parametrý JVM

Tlačítkem OK potvrdíme a projekt znovu spustíme. Nyní již vše proběhne hladce a aplikace se spustí.

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 ukážeme, jak v IDE NetBeans vytovřit novou JavaFX aplikaci.


 

 

Článek pro vás napsal Petr Štechmüller
Avatar
Jak se ti líbí článek?
2 hlasů
Autor se věnuje primárně programování v Jave, ale nebojí se ani webových technologií.
Všechny články v sekci
Okenní aplikace v Java FX
Miniatura
Následující článek
FXML a první formulářová aplikace v JavaFX
Aktivity (8)

 

 

Komentáře

Avatar
Robert Michalovič:15. března 6:22

Pěkný článek. Když už si tam načal kompilaci přes příkazový řádek nechce se ti doplnit i tvorbu spustitelných jar? Ať to máš dokonalé.

 
Odpovědět 15. března 6:22
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.