11.07.2015 Views

Editorial - Vitajte na stránkach www.einsty.hostujem.sk

Editorial - Vitajte na stránkach www.einsty.hostujem.sk

Editorial - Vitajte na stránkach www.einsty.hostujem.sk

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

P R O G R A M U J E M EAppletov sa však predsa len týkajú nejaké obmedzenia a nevýhody. Jedným z <strong>na</strong>j−väèších je asi obmedzenie prístupu k triedam pre I/O operácie. Applety toti vo všeobec−nosti nesmú pristupova k di<strong>sk</strong>u pouívate¾a. Šlo by toti o dos nebezpeèný nástroj, kebyèítanie alebo zápis mali applety povolený. Takýto nástroj by bolo ve¾mi jednoduchézneui, a preto JVM ve¾mi dobre strái applety a nedovolí im pristupova <strong>na</strong> di<strong>sk</strong>. Obsahwebu je ve¾mi ¾ahko prístupný a nebezpeèné applety by sa mohli ve¾mi ¾ahko rozšíri. Totoobmedzenie sa dá obís digitálnym podpísaním appletu èi celého archívu. Potom sa sámpouívate¾ môe rozhodnú, èi bude dôverova certifikaènej autorite, ktorá digitálny cer−tifikát vydala, a èi povolí appletu prístup <strong>na</strong> di<strong>sk</strong>. Ïalšou nevýhodou, o ktorej by sa dalohovori, je pomerne z<strong>na</strong>èná nároènos <strong>na</strong> rýchlos pripojenia pouívate¾a. Pri objem−nejších appletoch môe trva dos dlho, kým sa stiahnu všetky potrebné súbory, èo môeodradi hlavne pouívate¾ov s dial−upom. K tomu treba priráta monos, e pouívate¾ešte nemá <strong>na</strong>inštalovanú JVM, prípadne aspoò plugin <strong>na</strong> podporu appletov v browseri.Toto všetko môe pouívate¾a s pomalším pripojením od návštevy vašej stránky odradi,a preto by ste mali applety pouíva v rozumnej miere a umiestòova ich hlavne tam, kdeje ich funkcio<strong>na</strong>lita <strong>na</strong>ozaj nevyhnutná alebo vhodná.PRVÝ APPLET. Kadý applet je potomkom triedy JApplet. Toto platí pre kninicu Swing,v pôvodnej kninici AWT boli applety potomkami triedy Applet. Z dôvodov, o ktorých somu písal, sa budeme venova kninici Swing, a teda applety budeme odvádza od triedyJApplet. Pre kninicu Swing je typické, e triedy majú rov<strong>na</strong>ké názvy ako obdobné triedyv AWT s pridanou predponou J−. Take triedy, ktoré budeme v súvislosti s appletmi ane<strong>sk</strong>ôr s aplikáciami opisova, sa budú zaèí<strong>na</strong> vo väèšine prípadov písmenom J (pôjdehlavne o vizuálne komponenty). Pri študovaní dokumentácie JDK iste prídete <strong>na</strong> to, eve¾a tried kninice Swing je odvodených od tried kninice AWT, prièom JApplet nie je vtomto oh¾ade výnimkou (je okrem iného aj potomkom triedy Applet).Applety disponujú nieko¾kými dôleitými metódami, ktoré dedia od svojej rodièov<strong>sk</strong>ejtriedy JApplet. Rozoberieme si tie <strong>na</strong>jpodstatnejšie z nich:init() – táto metóda je volaná hneï po <strong>na</strong>tiahnutí appletu do pamäte. Vo svojichappletoch by ste túto triedu mali vdy prekrýva a vyko<strong>na</strong> potrebnú inicializáciu èlen−<strong>sk</strong>ých dát svojho appletu alebo ïalšiu inicializaènú èinnos. V triede JApplet (resp. Applet)je táto metóda prázd<strong>na</strong>, resp. nevykonáva niè. Táto metóda je <strong>na</strong>príklad vhodným mies−tom <strong>na</strong> <strong>na</strong>stavenie atribútov appletu, <strong>na</strong>pr. jeho ve¾kosti. Na to slúi metóda setSize(),ktorú dedí od triedy Component. Táto metóda vyaduje ako parameter inštanciu triedyDimension. Staèí takúto inštanciu <strong>sk</strong>onštruova (parametrami konštruktora sú dve celéèísla – šírka a výška) a odovzda metóde setSize(). Druhou monosou je odovzda tejtometóde priamo celoèíselné hodnoty typu int predstavujúce šírku a výšku. Ktorý postupuprednostníte, to záleí iba <strong>na</strong> vás. Take ak chceme inicializova a zobrazi applet tak,aby jeho ve¾kos v prehliadaèi bola 200 × 150, môeme to spravi takto:setSize(new Dimension(200, 150));alebo takto:setSize(200, 150);Metóda init() je volaná iba raz za celý èas od spustenia do zatvorenia (zrušenia) appletu.start() – metóda start() je spúšaná vdy, keï by mal applet zaèa vykonáva èinnos,<strong>na</strong> ktorú je urèený, alebo obnovi svoju aktivitu po jej zastavení zavolaním metódy stop().Je volaná vdy, keï sa applet dostane „<strong>na</strong> oèi“, resp. vdy, keï pouívate¾ zaktívni (maxi−malizuje) okno, v ktorom applet beí. Takisto je zavolaná po <strong>sk</strong>onèení metódy init().stop() – je doplnkom metódy start() – jej úlohou je zastavi zbytoènú èinnos appletupo zneaktívnení (minimalizovaní) ok<strong>na</strong>. Spolu s metódou start() predstavuje jednoduchýmechanizmus, ktorým je moné šetri systémové prostriedky v èase, keï pouívate¾ apple−tu nevenuje pozornos. Príkladom môe by vykres¾ovanie nejakej cyklicky sa opakujúceja nároènej animácie. V metóde stop() môete animáciu preruši a šetri tak èas proceso−ra a v metóde start() zase vykres¾ovanie animácie obnovi. Metóda stop() je volaná takis−to pred spustením metódy destroy().destroy() – metóda je volaná pri ukonèení behu programu. V tejto metóde by ste samali postara o uvo¾nenie všetkých systémových prostriedkov, ktoré váš applet vlastní.PRÍKLAD. S vedomosami, ktoré ste doposia¾ <strong>na</strong>dobudli, sa môeme pusti do nášhoprvého appletu. Vytvoríme applet, ktorý bude obsahova všetky metódy opísané v pred−chádzajúcej podkapitole, a názorne si ukáeme, ako tieto metódy fungujú, resp. kedy súvolané.import javax.swing.*;import java.awt.*;public class MojApplet extends JApplet {public void init() {this.setSize(new Dimension(200, 150)); /* <strong>na</strong>stavenie velkosti appletu */System.out.println("metoda init()");}public void start() {System.out.println("metoda start()");}public void stop() {System.out.println("metoda stop()");}public void destroy() {System.out.println("metoda destroy()");}}Tento applet ulote pod menom MojApplet.java a <strong>sk</strong>ompilujte ho príkazomjavac MojApplet.java(samozrejme, tento príkaz sa môe líši od vášho systémového <strong>na</strong>stavenia – predpokla−dám však, e kompiláciu zvládnete u bez problémov).Náš prvý applet obsahuje metódy, ktoré sme si u opisovali, a aby sme mohli testovaich postupné spúšanie, vypisujeme informáciu pri kadom vstupe do jednotlivých metód<strong>na</strong> štandardný výstup. Teraz applet spustite (postup, ako to urobi, je v podkapitole Tes−tovanie a publikovanie appletov) a <strong>sk</strong>úste opakovane minimalizova a maximalizova ok−no AppletViewera a sledujte výpisy v konzole. Po jednej minimalizácii, maximalizácii a za−tvorení by mal výpis vyzera asi takto:metoda init()metoda start()metoda stop()metoda start()metoda stop()metoda destroy()TESTOVANIE A PUBLIKOVANIE APPLETOV. Je logické, e pri programovaníappletov ich budete chcie obèas (èasto) testova. Pri testovaní appletov máte dve mo−nosti: buï si vytvoríte jednoduchý súbor HTML, do ktorého vloíte potrebný kód, a bude−te si prezera applety v prehliadaèi, alebo sa zaobídete bez týchto malých súborov HTMLa spustíte applet v aplikácii s názvom AppletViewer, ktorá sa dodáva spolu s JDK.Ak ste sa rozhodli pre prvú monos, vytvorte si súbor HTML (<strong>na</strong>pr. test.html) a doòvlote <strong>na</strong>sledujúci kód:Ako vidíte, je to ve¾mi jedoduché – v tagu applet špecifikujete parameter code, ktoréhohodnotou je názov triedy appletu. Tag applet má ešte ïalšie parametre (<strong>na</strong>pr. výšku,šírku), ale tie nie sú cie¾om tohto seriálu. Teraz staèí vo vašom prehliadaèi otvori tentosúbor a výsledkom je azda zobrazenie vášho prvého appletu (zatia¾ iba v podobe prázd−neho sivého obdånika). Problémom je práve to slovo azda. Je moné, e váš prehliadaènezobrazí niè a príèinou tohto problému je to, e rôzne prehliadaèe implementujú tentotag rôzne alebo v horšom prípade ho neimplementujú vôbec. Tento stav je výsledkom„vojny prehliadaèov“ a doplatili sme <strong>na</strong> to hlavne my programátori. Preto je rozumnejšiepouíva pri testovaní a publikovaní appletov tag . Jeho syntax je dos zloitá, apreto vám urèite príde vhod grafická utilita HtmlConverter (je umiestnená v podadresáribin inštalaèného adresára JDK, pod Windows je názov súboru HtmlConverter.exe). Staèívytvori pomocný súbor HTML ako v predchádzajúcom prípade s tagom (<strong>na</strong>pr.test.html), následne ho podstrèi HtmlConverteru, kliknú <strong>na</strong> Convert… a HtmlConvertervám v súbore test.html prepíše tag applet <strong>na</strong> tag object, ktorého kód vyzerá celkom hrozi−vo, ale vy ste nemuseli <strong>na</strong>písa ani èiarku z neho. Teraz staèí výsledný súbor test.html otvo−ri vo vašom prehliadaèi. Opisovaný postup sa odporúèa pri publikovaní finálnych verziíappletov, budete tak ma istotu, e applet sa zobrazí kadému návštevníkovi bez oh¾adu<strong>na</strong> pouívaný prehliadaè.Alter<strong>na</strong>tívnou monosou pri testovaní appletov (bez nutnosti vytvára malé testova−cie súbory HTML) je poui utilitu appletviewer (vo Windows appletviewer.exe, umiestne−nie je rov<strong>na</strong>ké ako v prípade HtmlConvertera). HTML tag applet treba vloi do zdrojovéhokódu appletu a zakomentova ho, <strong>na</strong>jlepšie <strong>na</strong> zaèiatok súboru, teda asi takto:// // Utilita appletviewer ignoruje všetko okrem tagov applet, a preto ju môete vloi pria−mo do zdrojového textu. Spustite z príkazového riadka appletviewer s názvom súboru sozdrojovým kódom ako parametrom:appletviewer c:\applety\MojApplet.javaMalo by sa vám zobrazi okno s appletom a vy môete sledova výpisy appletu priamo<strong>na</strong> konzole, z ktorej ste appletviewer spustili. Samozrejme, musíte zada <strong>sk</strong>utoènú cestuumiestnenia vášho appletu.Appletviewer pouívam pri testovaní appletov <strong>na</strong>jèastejšie, pretoe sa vyhnem zbytoènýmsúborom HTML. Pred umiestnením appletu <strong>na</strong> web vygenerujem pomocou HtmlConverterapotrebný kód HTML a ten <strong>sk</strong>opírujem do potrebnej èasti kódu HTML stránky. Aký spôsob tes−tovania a publikovania appletov budete pouíva vy, záleí len <strong>na</strong> vás, tu som sa vám s<strong>na</strong>iliba ukáza moné cesty.ZÁVER. V úvodnej èasti sme sa venovali úplným základom programovania javov<strong>sk</strong>ýchappletov. Pokia¾ vás táto tematika zaujala, dúfam, e vás upútajú aj ïalšie èasti seriálu, vktorých sa budeme venova vizuálnym komponentom a ich opisu, ako aj spôsobu ich roz−miestòovania <strong>na</strong> ploche appletu.Andrej ChuÈo by ste si mali pozrie:http://java.sun.comJava 2 Platform API Specification (dokumentácia)http://<strong>www</strong>.bruceeckel.comCore Java 2, Volume I & II,Gary Cornell, Cay S. Horstmann, Prentice Hall PTRProfessio<strong>na</strong>l Java Programming, Brett Spell, Wrox Press1/2003 PC REVUE 113

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!