JavaFX 1.2
1. | Čo je JavaFX |
2. | JavaFX 1.2 |
3. | Tvorba JavaFX aplikácie
|
V tejto časti mojej práce porovnám novú verziu JavaFX s jej predchodcami a priblížim jej praktické využitie na reálnom zariadení.
JavaFX1.2 poskytne neustále pripojeným spotrebiteľom to, čo hľadajú - používateľský zážitok bez ohľadu na to, na ktorom zariadení sú pripojení a či sedia za stolom, trávia čas pri cestovaní so svojimi PDA, alebo relaxujú doma. Aplikácie napísané pomocou JavaFX Script využívajú vytvorené rysy technológie Java, ako napríklad prenositeľnosť, zabezpečenie aplikácií, všadeprítomnú distribúciu a podnikovú pripojiteľnosť. Jedinečnosť JavaFX Script pochádza z jeho schopnosti vložiť overený výkon platformy Java a z masového rozšírenia Java na trhu, čo je dané jeho jedinečnou všade prítomnosťou a používaním v rámci 9 z 10 PC a mobilných zariadení. Okrem toho, JavaFX Script môže podporovať používateľské rozhrania akejkoľvek veľkosti alebo komplexnosti, je staticky napísaný a môže využiť programovacie modely Java (ako napríklad štruktúrovanie kódu, opätovné použitie a vlastnosti uzatvorenia), čo mu umožňuje vytvoriť a spravovať veľké programy v JavaFX Script. JavaFX Script bude zaujímavý pre autorov obsahu, pretože štruktúra písaného kódu presne zodpovedá aktuálnemu rozvrhnutiu GUI a je možné ho jednoduchšie pochopiť a udržiavať. Jazyk podporuje bežné typy premenných ako string, integer a čísla s plávajúcou desatinnou čiarkou a logické (Boolean) hodnoty. Rozsiahla podpora je poskytovaná pre manipuláciu s poliami a zoznamami so silným a jednoduchým syntaxom. JavaFX objekty sú vytvárané s deklaratívnym syntaxom. To je užitočné najmä v triedach, ktoré poskytujú zjednodušený most JavaSwing tried používateľského rozhrania.
Obr. č. 2: Java FX script – porovnanie zdrojových kódov s predchodcami
Výhody JavaFX Script::
- Zvyšuje produktivitu vývojárov (aj prostredníctvom GPL licencie a prostredníctvom tzv. JavaFX community)
- Ponúka intuitívny jazykový (kódový) design
- Potrebuje menej kódu
- Poskytuje rýchlejšie vývojové cykly
- Nulové straty funkčnosti na zariadeniach
Obr. č. 3: Ukážka možností grafického rozhrania
JavaFX1.2 poskytuje jednotný vývoj a využitie modelu pre vytváranie funkčne bohatých klientskych aplikácií, ktoré integrujú bohatý množstvo médií ako audio a video, grafiku, RTF a webové služby. JavaFX1.2 umožňuje vývojárom kreatívne programovať vo vizuálnom kontexte a tým im pomáha, aby svoje myšlienky uvádzali do života rýchlejšie a lepšie. Java vývojári môžu zachovať existujúce investície do opakovaných Java knižníc v aplikáciách JavaFX1.2. Plus, JavaFX umožňuje prístup k schopnostiam na prístrojoch na úrovni mobilných zariadení. Z hľadiska vývoja, môžu Java vývojári naďalej využívať globálny Java ekosystém s jeho rozsiahle vedomostnú základňu a obrovský trh. JavaFX1.2 prináša s presvedčivou "značkou" nový obsahu a bohatšie skúsenosti. S Java SE 6 Update 10 (a vyššie), môžete Drag-to-Install JavaFX aplikácie jednoduchým pretiahnutím z prehliadača - potom môžete oživiť aplikácie priamo zo svojho počítača! Drag-to-Install zjednodušuje distribúciu obsahu koncovým užívateľom a poskytuje im prístup, kedy a kde chcú.
Najviditeľnejším nedostatkom v zozname funkcií jazyka JavaFX, ktoré poskytuje, je spôsob, ako manipulovať s dátami XML syntax. Ako najvýhodnejšia možnosť pre manipuláciu s týmito predmetmi sa javí používať Swingové knižnice. Samozrejme si môžete vytvoriť vlastnú Java triedu so Swingovým skriptom a môžete ju použiť v skripte JavaFX.
Obr. č. 4: Ukážka možností grafického rozhrania
Hardvér
V tejto kapitole rozoberiem hardvérové možnosti JavaFX v praxi. Spoločnosť SUN má v podstate len dve možnosti, ako sa presadiť na trhu s freeware softvérom inštalovaných do výrobkov priamo pri ich výrobe. Prvou, tou menej pravdepodobnou, je po dohode s výrobcom svoje produkty inštalovať do už vyvinutých výrobkov, ktoré sú na trhu nejaký čas, alebo inštalovať ich do zariadení, ktoré sú práve vo vývoji, a tým v podstate participovať na evolúcii ich softvérovej, ale i hardvérovej štruktúre (keďže by bol hardvér čiastočne prispôsobovaný, vyspelejšiemu programovému vybaveniu).Vzhľadom na to, že JavaFX je na trhu pomerne krátky čas (cca 6 mesiacov), momentálny stav je taký, že do zariadení domácej zábavy a mobilných telefónov t. j. oblasť v ktorej majú staršie produkty spoločnosti SUN významné postavenie, sa neinštalujú. V mojom prípade sa teda bude jednať o zariadenie, ktoré je podľa domovskej stránky spoločnosti SUN vo vývoji a je predbežne popisované ako ucelená jednotka domácej zábavy. Má nahradiť doteraz používané zariadenia nielen na príjem digitálneho a analógového signálu, jeho záznam na pevný disk (avizujú jeho kapacitu až 2 terrabyty), ale malo by plniť aj funkciu DVD či CD prehrávača a domáceho kina (5.1 kanálov). Po pripojení na internet by malo plniť úlohu domáceho informačného centra, kde by mali byť k dispozícii údaje ako sú napríklad správy, cestovné poriadky, televízne programy atď.. Ďalšou z funkcií by mala byť už skôr spomínaná možnosť hrať RPG systémom PBP. Samozrejmosťou je, že toto zariadenie sa bude dať ovládať jediným multifunkčným diaľkovým ovládačom.
Obr. č. 5: Hardvér pre JavaFX
VIA Digital Media Platform
VIA / Ubuntu / JavaFX hardvérové dekódovanie HD - Digital Media Platform
Zariadenie Digital Media Platform, je určené pre aplikácie, ktoré využívajú nákupné centrá, letiská, hotely atď.Užívateľské rozhranie je vytvorené v JavaFX 1.2, hardware a operačný systém je schopný dekódovať a zobraziť HD obsah vo formátoch ako AVI, WMV a M4V, v 720p alebo 1080p kvalite. Systém tiež musí byť schopný podporovať veľkú dotykovú obrazovku, to vyžaduje, aby obsahoval aj driver pre Xorg a kalibračný program. Toto zariadenie je dobrý príklad pre všestrannosť JavaFX nakoľko hardvérová platforma je tvorená komponentami VIA, ktorá vytvorila DRM jadro, ovládače pre dekodéry HD a video, mplayer a špeciálne video z pluginov. Operačný systém je okresanou verziou Linux Ubuntu, ktorá obsahuje len potrebné súčasti.Hlavný rozdiel pri prehrávaní HD videa medzi klasickými zariadeniami (normou video výstup na 1.5Ghz procesor) a touto zostavou, ako tvrdia prvý užívatelia je obrovský. Pri vstupe do budovy bol zvuk ďaleko dporedu predhrávaný pred obrazom. Pri použití Digital Media Platform s dodanou VIA Mplayer video výstupom, je film úplne hladký a v súlade so zvukom.
Obr. č. 6: VIA Digital Media Platform predná a zadná strana
JavaFX 1.2 a webové služby
V tejto časti popíšem možnosti použitia JavaFX pre vytvorenie webového klienta a taktiež uvediem a rozoberiem príklad napojenia sa na databázu umiestnenú na internete a na čítanie dokumentu v XML formáte. JavaFX so svojou všestrannosťou a pritom jednoduchosťou je využívaná vývojármi okrem tvorby statických aplikácií na tvorbu programov, ktoré sú určené na určitý druh komunikácie, či už s inými aplikáciami, alebo prostredníctvom siete so servermi a databázami. Aj keď samotný zdrojový kód a knižnice Java neobsahujú priamo nástroje na prístup do rôznych typov serverov, ktoré pracujú v rôznych protokoloch, JavaFX dokáže využiť to, že jej kód môže byť kombinovaný s predchodcami JavyFX alebo tiež s kódmi C, C++, MySQL, Solaris, alebo napríklad s kódom Glasfish. Stačí si pritom iba načítať knižnice, ktoré sú potrebné pre prácu s tým ktorým kódom. Takýmto spôsobom potom môže aplikácia jednoducho načítavať obsah rss stránky alebo pracovať s dokumentmi typu XML. HTML či XHTML. Tu je jednoduchý príklad pripojenia sa na URL a načítanie XML dokumentu:
Zdrojový kód č. 1: Príklad pripojenia sa na URL a načítanie XML dokumentu
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.helpers.XMLReaderFactory;
// tu sú načítané potrebné knižnice
public Priklad (String Retazec, boolean Hodnota) throws IOException {
InputStream is = getInputStreamFromURL(URLadresa(Retazec, hodnota));
// napojenie na URL adresu
try {
InputSource inputSource = new InputSource(is);
XMLReader reader = XMLReaderFactory.createXMLReader();
reader.setContentHandler(new YWSParser());
reader.parse(inputSource);
// použitie parseru
} catch (SAXException saxe) {
throw new IOException(saxe.getMessage());
} finally {
if (is != null) {
is.close();
}
}
// použitie výnimky pre prípad chyby (napríklad výpadku serveru)
V ďalších častiach sa len nadefinujú, ktoré údaje potrebujeme načítať a kam.