JavaFX 1.2: Rozdiel medzi revíziami

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
(Vytvorená stránka „Kategória:Študentské práce Kategória:Ročníkové práce Kategória:Informatika Kategória:Java {{Praca_uvod|2|Platforma JavaFX pre moderné webové ap…“)
 
 
(Jedna medziľahlá úprava od rovnakého používateľa nie je zobrazená.)
Riadok 5: Riadok 5:
 
{{Praca_uvod|2|Platforma JavaFX pre moderné webové aplikácie|Čo je JavaFX|JavaFX 1.2|Tvorba JavaFX aplikácie||||||||}}
 
{{Praca_uvod|2|Platforma JavaFX pre moderné webové aplikácie|Čo je JavaFX|JavaFX 1.2|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.
 +
 +
[[Súbor:bpmv2.png|center|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
 +
 +
[[Súbor:bpmv3.png|center|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.
 +
 +
[[Súbor:bpmv4.png|center|Obr. č. 4: Ukážka možností grafického rozhrania]]           
 +
 
==Hardvér==
 
==Hardvér==
==JavaFX a webové služby==
+
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.
 +
 +
[[Súbor:bpmv5.png|center|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.
 +
 
 +
[[Súbor:bpmv6.png|center|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
 +
<source lang="java">
 +
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)
 +
</source>
 +
 
 +
V ďalších častiach sa len nadefinujú, ktoré údaje potrebujeme načítať a kam.

Aktuálna revízia z 21:29, 5. február 2010

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.