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
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