IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

1. diel - Úvod do JavaFX

V tomto Java on-line kurzu sa naučíme vytvárať okenné (formulárové) aplikácie v JavaFX. Naučíme sa pracovať s tlačidlami, textovými poľami, tabuľkami, ale aj obrázky alebo napr. Grafy.

Pre absolvovanie kurzu nepotrebujete žiadne pokročilé znalosti. Predpokladám však, že poznáte aspoň základy objektovo orientovaného programovania v Jave.

API pre GUI v Jave

V Jave máme k dispozícii hneď 4 možnosti, ako vytvárať grafické aplikácie. Sú to:

  • AWT - najstarší, relatívne rýchle API, ktoré je ale naviazané na volanie systémového API
  • Swing - využíva vlastné vykresľovanie, ktoré je celé napísané v Jave a nezávislé na konkrétne platforme (naše aplikácie vyzerá všade rovnako), je samozrejme pomalší, ale užívateľsky prívetivejšie
  • SWT - vytvorené firmou IBM, využité v Eclipse, jednoduchšie ako Swing, využíva natívny kód
  • JavaFX - modernejší náhrada za Swing, ktorý je veľmi rozšírený, ale neumožňuje toľko uspôsobiť vzhľad aplikácií

JavaFX

JavaFX je moderný framework pre tvorbu bohatých okenných aplikácií. Bohatých je tu myslené vizuálne. JavaFX prináša podporu obrázkov, videa, hudby, grafov, CSS štýlov a ďalších technológií, ktoré zabezpečia, že výsledná aplikácia je naozaj pekná. Zároveň je kladený dôraz na jednoduchosť tvorby, všetky spomínané veci sú v JavaFX v základe. JavaFX sa hodí ako pre desktopové aplikácie, tak pre webové applety alebo mobilné aplikácie.

JavaFX vs. swing

JavaFX sa stala súčasťou štandardnej Javy vo verzii 8. Všetci dúfali, že postupom času nahradí Swing a zastane funkciu hlavného API pre desktop v Jave. V JavaFX síce vzniklo veľké množstvo nových aplikácií, firma Oracle sa však rozhodla jej vývoj ukončiť a odovzdať ho open-source komunite, ktorá postupne JavaFX vylepšuje. Novo sú oficiálne stránky openjfx.io. To ešte nie je problém. Horšie je, že od Javy verzie 11 už JavaFX nie je súčasťou JRE / JDK. Aby ste v nej mohli vyvíjať, je ju potrebné doinštalovať.

Ak ste začiatočníci a chcete vytvárať len nejaké jednoduché okenné aplikácie, je možno lepšie nápad použiť Swing. Ak chcete vytvoriť komplexnejší okenné aplikáciu v Jave, ste tu dnes správne :)

Inštalácia JavaFX

Aby sme s JavaFX mohli začať, musíme ju teda najprv manuálne nainštalovať. Alebo, čo je preferovanější spôsob, ju použiť ako ktorúkoľvek inú knižnicu. Pri použití JavaFX ako knižnice silne odporúčam používať Maven, alebo ešte lepšie grádl pre automatickú správu závislostí. Knižnice sa potom lepšie spravujú. Odkazy na tieto technológie vedú na alternatívne návody na inštaláciu JavaFX pre pokročilejších užívateľov.

JavaFX ako knižnica

V tomto úvodnom článku si ukážeme inštaláciu JavaFX ako knižnice pomocou IDE NetBeans, čo je pre začiatok najjednoduchšie. Ak vás zaujímajú ďalšie možnosti inštalácie alebo chcete rozumieť tomu, čo sa deje pod pokrievkou, pripravil som pre vás článok Manuálna inštalácia JavaFX.

Knižnice sú hostované na stránkach Maven central a sú rozdelené do nasledujúcich kategórií:

  • base - definuje základné API pre JavaFX, binding, property, kolekcie a udalosti
  • controls - zahŕňa všetky ovládacie prvky, ktorými JavaFX disponuje
  • fxml - definuje FXML API pre JavaFX
  • graphic - obsahuje hlavné API pre graf scény všetkých ovládacích prvkov (layouty, kontajnery, životný cyklus aplikácie, grafické tvary, transformácia, canvas, ošetrenie vstupu, kreslenie, spracovanie obrázkov), ďalej obsahuje API pre animácie, podporu CSS štýlov a ďalšie
  • media - obsahuje API pre prácu so zvukom a videom
  • swing - podpora pre swingové komponenty
  • web - obsahuje API pre zobrazenie webových stránok za pomoci WebView komponenty

Pre minimálnu konfiguráciu budeme potrebovať celkom 3 knižnice: base, graphics a controls. Vytvorte si novú zložku, do ktorej stiahnete tieto tri knižnice.

Hladanie potrebnych knižníc - Okenné aplikácie v Java FX

V Maven centrálnom repozitári nájdete požadované knižnice.

Výber správnej verzie knižnice - Okenné aplikácie v Java FX

Vyberiete si požadovanú verziu. Je dôležité, aby ste mali rovnakú verziu pre všetky moduly JavaFX.

Zobrazenie všetkých súborov, ktoré možno stiahnuť - Okenné aplikácie v Java FX

Cez odkaz "View all" si zobrazíte zoznam všetkých dostupných súborov, ktoré možno stiahnuť.

Prevzatie knižnice so zdrojovými kódmi - Okenné aplikácie v Java FX

Stiahnite súbor ako sa zdrojovými kódmi (source), tak špecifický podľa operačného systému (Windows, Linux, MacOS).

NetBeans a JavaFX

NetBeans je k dispozícii v dvoch verziách:

My budeme používať tú najnovšiu, teda verziu 10. Začneme Spustením NetBeans.

Úvodná obrazovka NetBeans - Okenné aplikácie v Java FX

Vytvorenie projektu

V ľavej hornej časti v menu zvolíme File -> New Project.

Sprievodca novým projektom – výber platformy - Okenné aplikácie v Java FX

V kategórii zvolíme Java az projektov vyberieme Java Application. Nesmiete vybrať kategóriu JavaFX, pretože potom by bolo NetBeans zmätené. Tlačidlom Next prejdeme na ďalšie okno.

Sprievodca novým projektom – názov a umiestnenie projektu - Okenné aplikácie v Java FX

Teraz zvolíme názov a umiestnenie projektu. Tlačidlom Finish dokončíme tvorbu nového projektu.

Čistý projekt bez JavaFX - Okenné aplikácie v Java FX

Projekt máme vytvorený, teraz je potrebné pridať JavaFX knižnice.

Pridanie JavaFX do NetBeans

Najskôr si stiahnuté JavaFX knižnice z predchádzajúcich krokov uložte niekam na bezpečné miesto, odkiaľ ich nebudete mazať. Budeme totiž vytvárať Globálne knižnicu pre NetBeans, ktorú budeme neskôr pridávať ku každému projektu, v ktorom budeme pracovať s JavaFX. V menu nájdeme záložku Tools a zvolíme položku Libraries.

Pridanie novej globálnej knižnice - Okenné aplikácie v Java FX

V tomto okne klikneme na tlačidlo New Library pre založenie novej globálnej knižnice.

Pomenovanie novej globálnej knižnice - Okenné aplikácie v Java FX

Knižnicu pomenujeme napríklad JavaFX a potvrdíme tlačidlom OK.

Pridanie súborov JavaFX knižnice - Okenné aplikácie v Java FX

Teraz pridáme do novovytvorenej globálnej knižnice odkazy na JAR súbory knižnice JavaFX. Klikneme na tlačidlo Add Jar / Folder.

Výber súborov knižnice JavaFX - Okenné aplikácie v Java FX

Vyberieme iba "binárne" súbory s knižnicou JavaFX. Nevyberajte súbory označené source, ktoré sme sťahovali skôr. Tlačidlom Add Jar / Folder potvrdíme súbory.

Prehľad vybraných JavaFX knižníc - Okenné aplikácie v Java FX

Tlačidlom OK zatvoríme dialóg s globálnymi knižnicami. Teraz musíme pridať túto globálnu knižnicu k nášmu projektu.

Pridanie JavaFX do projektu

Prechod do nastavenia projektu - Okenné aplikácie v Java FX

Nad červeno označenú oblastí stlačíme pravé tlačidlo myši. Zobrazí sa nám veľký zoznam možností, čo možno s projektom urobiť. Nás bude zaujímať posledná položka Properties.

nastavenie modulepath - Okenné aplikácie v Java FX

Otvorilo sa nám okno s vlastnosťami projektu. My sa najskôr musíme presunúť do záložky Libraries. Tu musíme nastaviť dve veci: Modulepath a CLASSPATH. Začneme nastavením Modulepath. Stlačíme červeno označené tlačidlo a zobrazí sa nám nové dialógové okno.

Pridanie globálne JavaFX knižnice do modulpath - Okenné aplikácie v Java FX

V tomto okne vyberieme našej globálnej JavaFX knižnicu a potvrdíme tlačidlom OK.

Pridanie globálne JavaFX knižnice do CLASSPATH - Okenné aplikácie v Java FX

Teraz stlačíme druhé tlačidlo pre výber súborov, ktoré sa pripojí do CLASSPATH.

Pridanie globálne JavaFX knižnice do CLASSPATH - Okenné aplikácie v Java FX

Opäť vyberieme iba "binárne" súbory, nie zdrojové. Tlačidlom OK všetko potvrdíme a dialóg zmizne.

Prehľad pridaných knižníc do projektu - Okenné aplikácie v Java FX

Knižnicu máme pridanou, môžeme teda stlačiť tlačidlo OK pre uloženie zmien. Teraz sme úspešne pripojili JavaFX knižnicu do projektu.

Testovací projekt

Aby sme si všetko otestovali, vložíme do triedy Main testovacie kód pre otestovanie funkčnosti. Pre istotu ho znova uvediem:

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();
    }
}
spustenie projektu - Okenné aplikácie v Java FX

Teraz sa pokúsime projekt spustiť. Presunieme sa myšou opäť nad červeno vyznačenú oblasť, stlačíme pravé tlačidlo az ponuky vyberieme možnosť Run.

Projekt sa nepodarí skompilovať a IDE zobrazí nasledujúce hlášku:

Chybová hláška pri prvom spustení - Okenné aplikácie v Java FX

Aby sme chybu odstránili, musíme sa presunúť opäť do nastavenia projektu, tentoraz ale do záložky Run.

Pridanie parametrov pre Java Virtual Machine - Okenné aplikácie v Java FX

Do červeno označeného miesta vložíme nasledujúci text:

--add-modules=javafx.controls

V budúcnosti budeme nepochybne potrebovať pridať ešte ďalšie časti JavaFX knižnice. Pre pridanie upravíte globálnej knižnicu, pridáte súbory a do textu výšky pridáte nový modul, napr .: javafx.controls. Jednotlivé moduly sa oddeľujú znakom ,.

Vloženie parametra JVM - Okenné aplikácie v Java FX

Tlačidlom OK potvrdíme a projekt znovu spustíme. Teraz už všetko prebehne hladko a aplikácie sa spustí.

Gratulujem, podarilo sa vám sprevádzkovať JavaFX na vašom počítači. V budúcej lekcii, FXML a prvé formulárové aplikácie v JavaFX , si ukážeme, ako v IDE NetBeans vytovřit novú JavaFX aplikáciu.


 

Všetky články v sekcii
Okenné aplikácie v Java FX
Preskočiť článok
(neodporúčame)
FXML a prvé formulárové aplikácie v JavaFX
Článok pre vás napísal Petr Štechmüller
Avatar
Užívateľské hodnotenie:
1 hlasov
Autor se věnuje primárně programování v Javě, ale nebojí se ani webových technologií.
Aktivity