Java applety: Rozdiel medzi revíziami
(Vytvorená stránka „{{Navigacne menu - java}} Applet je (relatívne) jednoduchá aplikácia, ktorá sa spúšťa z iného programu napr. webového prehliadača. Na rozdiel od programu nemôž…“) |
|||
(Jedna medziľahlá úprava od rovnakého používateľa nie je zobrazená.) | |||
Riadok 1: | Riadok 1: | ||
{{Navigacne menu - java}} | {{Navigacne menu - java}} | ||
Applet je (relatívne) jednoduchá aplikácia, ktorá sa spúšťa z iného programu napr. webového prehliadača. Na rozdiel od programu nemôže applet bežať samostatne (na rozdiel od servletu). Musí byť spustený pomocou kontajneru poskytovanom hostiteľským programom, zvyčajne pomocou pluginu (na rozdiel od skriptu napísaného v skriptovacom jazyku ako je napr. JavaScript). Applet býva bezstavový a z bezpečnostných dôvodov disponuje len obmedzenými prístupovými právami (pri práci so súborovým systémom). | Applet je (relatívne) jednoduchá aplikácia, ktorá sa spúšťa z iného programu napr. webového prehliadača. Na rozdiel od programu nemôže applet bežať samostatne (na rozdiel od servletu). Musí byť spustený pomocou kontajneru poskytovanom hostiteľským programom, zvyčajne pomocou pluginu (na rozdiel od skriptu napísaného v skriptovacom jazyku ako je napr. JavaScript). Applet býva bezstavový a z bezpečnostných dôvodov disponuje len obmedzenými prístupovými právami (pri práci so súborovým systémom). | ||
+ | __TOC__ | ||
Platforma Java obsahuje 2 základné balíky tried pre prácu s grafikou: | Platforma Java obsahuje 2 základné balíky tried pre prácu s grafikou: | ||
Riadok 9: | Riadok 10: | ||
Podľa toho, akú grafickú knižnicu bude applet používať môžeme hovoriť o appletoch používajúce komponenty AWT alebo SWING. | Podľa toho, akú grafickú knižnicu bude applet používať môžeme hovoriť o appletoch používajúce komponenty AWT alebo SWING. | ||
+ | |||
+ | Aplety, na rozdiel od bežných aplikácií, majú určité obmedzenia bezpečnostného charakteru: | ||
+ | *aplet nemôže spúšťať programy na domovskom serveri. | ||
+ | *aplet nemôže zapisovať do súborov v počítači, na ktorom je spustený. | ||
+ | *aplet nemôže nadväzovať spojenie inam než na domovský server. | ||
==Vytvorenie appletu== | ==Vytvorenie appletu== | ||
− | Základnú štruktúru appletu tvorí trieda java.applet.Applet, ktorá definuje základné metódy tvoriace rozhrania medzi prehliadačom a | + | Základnú štruktúru appletu tvorí trieda java.applet.Applet, ktorá definuje základné metódy tvoriace rozhrania medzi prehliadačom a appletom. Program, ktorý má fungovať ako applet, musí byť potomkom tejto triedy. |
Applet beží v grafickom kontexte, a ten je úzko spojený s knižnicou AWT. Trieda java.applet.Applet je potomkom triedy java.awt.Panel, ktorá umožňuje appletu vlastniť komponenty používateľského rozhrania, vykonávať grafický výstup a zachytávať udalosti z klávesnice a myši. | Applet beží v grafickom kontexte, a ten je úzko spojený s knižnicou AWT. Trieda java.applet.Applet je potomkom triedy java.awt.Panel, ktorá umožňuje appletu vlastniť komponenty používateľského rozhrania, vykonávať grafický výstup a zachytávať udalosti z klávesnice a myši. | ||
Riadok 18: | Riadok 24: | ||
Životný cyklus appletu závisí na prehliadači, ktorý počas svojej činnosti volá tieto metódy appletu: | Životný cyklus appletu závisí na prehliadači, ktorý počas svojej činnosti volá tieto metódy appletu: | ||
− | + | ;public void init():Najdôležitejšie metóda, je zavolaná po vykonaní konštruktora. Jej cieľom je inicializácia apletu, supluje teda funkciu konštruktora. Kód v nej by mal byť chránený pre prípad vzniku výnimky, najčastejšie je používaná konštrukcia try-catch. Metóda je volaná pre aplet iba jedenkrát. Každý applet by mal obsahovať metódu init (). | |
− | + | ;public void start() :Po vykonaní metódy init () je applet spustený metódou start(). Metóda je vykonaná vždy, keď sa aplet stane v okne prehliadača viditeľný. Na rozdiel od predchádzajúcej metódy môže byť pre aplet volaná opakovane. | |
− | + | ;public void paint(java.awt.Graphics g):Metóda je volaná v prípade, kedy je nutné prekresliť obsah okna. Na objekt triedy Graphics možno kresliť bežnými metódami. | |
− | + | ;public void stop():Činnosť apletu je metódou stop ukončená. Dôjde k tomu, keď aplet prestane byť v okne prehliadača viditeľný. Ak sa aplet stane opäť viditeľný, je vykonaná metóda start(), ktorá aplet spustí. Metóda start() môže byť pre aplet volaná opakovane, je vlastne náprotivkom metódy stop(). Používa sa často v prípade, keď applet vykonáva výpočtovo náročné činnosti, napr animácie. | |
− | + | ;public void destroy(): Metóda je volaná pri uvoľnení apletu z pamäte, má podobnú funkciu ako deštruktor. Pre aplet je volaná len raz. | |
+ | |||
<source lang="java"> | <source lang="java"> | ||
Riadok 49: | Riadok 56: | ||
[[Súbor:Životný cyklus appletu.gif|framed|center]] | [[Súbor:Životný cyklus appletu.gif|framed|center]] | ||
+ | ==Prvý Applet== | ||
+ | |||
+ | Vytvorte applet, ktorý po spustení vypíše "Ahoj Applet". | ||
+ | |||
+ | ===Vytvorenie appletu v NetBeans=== | ||
+ | |||
+ | '''1. Vytvorenie projektu''' | ||
+ | |||
+ | V prostredí Netbeans vytvorne nový, prázdny projekt. V časti [[Práca_v_NetBeans]] je návod ako vytvoriť nový projekt. V druhom krou pri vytváraní projektu (Name and Location) treba zrušiť zaškrknutie "Create Main Class". | ||
+ | |||
+ | [[Súbor:applet - prázdny projekt.png|center]] | ||
+ | |||
+ | '''2. Vytvorenie nového appletu''' | ||
+ | |||
+ | Do projektu pridáme novú triedu: File -> New File. Vyberieme kategóriu Java a typ súboru Applet | ||
+ | |||
+ | [[Súbor:applet - nový applet.png|center]] | ||
+ | |||
+ | V ďalšom krku zvolíme názov appletu (napríklad NovyApplet) a dokončíme sprievodcu. | ||
+ | |||
+ | '''3. Doplnenie zdrojového kódu''' | ||
+ | |||
+ | Z predchádzajúceho textu vieme, že o vykreslovanie obsahu appletu sa stará metóda paint. Doplňme teda metódu paint do nášho zdrojového kódu. | ||
+ | |||
+ | <source lang="java"> | ||
+ | public class NovyApplet extends java.applet.Applet | ||
+ | { | ||
+ | public void init() { | ||
+ | } | ||
+ | |||
+ | public void paint(java.awt.Graphics g) | ||
+ | { | ||
+ | g.drawString("Ahoj Applet",5,25); | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | Pre vykreslenie textu do apletu existuje metóda drawString triedy Graphics. Prvý parameter tejto metódy je reťazec, ktorý sa má vypísať. Druhý a tretí parameter sú súradnice (v pixeloch) bodu v ktorom sa daný text vykreslí. | ||
+ | |||
+ | '''4. Spustenie appletu''' | ||
+ | Keďže applet nemá metódu main, nedá sa spustiť pomocou skratky F6. Použijeme skratku Shift+F6, ktorá má význam: spusti aktuálny súbor. | ||
+ | |||
+ | ===Vytvorenie appletu v SciTe=== | ||
+ | '''1. Vytvorenie zdrojového kódu''' | ||
+ | |||
+ | V novom, prázdnom adresári vytvorte nový súbor, do ktorého skopírujte zdrojový kód uvedený vyššie. | ||
+ | |||
+ | '''2. Spustenie appletu''' | ||
+ | *Vytvorený program zostavte (F7 - Build). Na disku sa vytvorí súbor NovyApplet.class | ||
+ | *Pripravte si HTML súbor (spuscac.html), ktorý bude slúžiť ako spúšťač appletu: | ||
+ | <source lang="html4strict"> | ||
+ | <html> | ||
+ | <applet code="NovyApplet.class" height=200 width=320> | ||
+ | </applet> | ||
+ | </html> | ||
+ | </source> | ||
+ | Tento súbor môžeme spustiť priamo vo internetovom prehliadači, alebo pomocou aplikácie appletviever. | ||
+ | |||
+ | ==Applet viewer== | ||
+ | Práca s sppletom vo webovom prehliadači nie je príliš pohodlná. Jej najväčšou nevýhodou je fakt, že prípadné zmeny v zdrojovom kóde appletu sa v prehliadači neprejaví ani pri opakovanom načítaní www stránky. Prehliadač teda musíme reštartovať. Existuje aplikácia, ktorá sa používa pre zobrazovanie appletov s názvom appletviewer. Appletviewer sa používa pre zobrazenie appletu uvedeného v HTML kóde stránky. Ostatný HTML kód stránky ignoruje. Spustíme ho nasledujúcim príkazom: | ||
+ | <source lang="bash"> | ||
+ | appletviewer html_subor_s_appletom.html | ||
+ | </source> | ||
==Zdroje a odkazy== | ==Zdroje a odkazy== | ||
<references/> | <references/> |
Aktuálna revízia z 19:59, 16. október 2010
Základy informatiky - jazyk Java
Úvod do programovania v jazyku Java
Java - objektovo orientovaný prístup
Vzorové príklady:
- >Java applety - základná práca
- >Java applety - interakcia s používateľom
- >Java applety - fraktály
- >Java applety - animácia
- >Java applety - animácie bez blikania
Java - implementácia numerických algoritmov
Java - triedy geometrických tvarov
Pokročilé témy:
Applet je (relatívne) jednoduchá aplikácia, ktorá sa spúšťa z iného programu napr. webového prehliadača. Na rozdiel od programu nemôže applet bežať samostatne (na rozdiel od servletu). Musí byť spustený pomocou kontajneru poskytovanom hostiteľským programom, zvyčajne pomocou pluginu (na rozdiel od skriptu napísaného v skriptovacom jazyku ako je napr. JavaScript). Applet býva bezstavový a z bezpečnostných dôvodov disponuje len obmedzenými prístupovými právami (pri práci so súborovým systémom).
Obsah
Platforma Java obsahuje 2 základné balíky tried pre prácu s grafikou:
- AWT - Abstract Window Toolkit. AWT je historicky prvá grafická knižnica pre Javu. Definuje základné ovládacie prvky ako je napr. tlačidlo, posuvník, editovacie pole a iné.
- JFC - Java Foundation Classes, ktoré obsahujú aj knižnicu SWING. JFC je komplexný súbor prvkov GUI a služby, ktoré výrazne zjednodušujú vývoj a nasadenie desktopových a webových aplikácií.
Java Foundation Classes sú nadmnožinou, ktorá obsahuje aj AWT. JFC rozširuje AWT pridaním viacerých komponentov a služieb.
Podľa toho, akú grafickú knižnicu bude applet používať môžeme hovoriť o appletoch používajúce komponenty AWT alebo SWING.
Aplety, na rozdiel od bežných aplikácií, majú určité obmedzenia bezpečnostného charakteru:
- aplet nemôže spúšťať programy na domovskom serveri.
- aplet nemôže zapisovať do súborov v počítači, na ktorom je spustený.
- aplet nemôže nadväzovať spojenie inam než na domovský server.
Vytvorenie appletu
Základnú štruktúru appletu tvorí trieda java.applet.Applet, ktorá definuje základné metódy tvoriace rozhrania medzi prehliadačom a appletom. Program, ktorý má fungovať ako applet, musí byť potomkom tejto triedy.
Applet beží v grafickom kontexte, a ten je úzko spojený s knižnicou AWT. Trieda java.applet.Applet je potomkom triedy java.awt.Panel, ktorá umožňuje appletu vlastniť komponenty používateľského rozhrania, vykonávať grafický výstup a zachytávať udalosti z klávesnice a myši.
Trieda, ktorá je potomkom triedy java.awt.Applet, alebo avax.swing.JApplet je automaticky applet. Trieda Applet definuje 5 metód, ktoré majú svoj význam pri životnom cykle appletu. Tieto metódy sú prázdne a je na programátorovi, aby ich doplnil.
Životný cyklus appletu závisí na prehliadači, ktorý počas svojej činnosti volá tieto metódy appletu:
- public void init()
- Najdôležitejšie metóda, je zavolaná po vykonaní konštruktora. Jej cieľom je inicializácia apletu, supluje teda funkciu konštruktora. Kód v nej by mal byť chránený pre prípad vzniku výnimky, najčastejšie je používaná konštrukcia try-catch. Metóda je volaná pre aplet iba jedenkrát. Každý applet by mal obsahovať metódu init ().
- public void start()
- Po vykonaní metódy init () je applet spustený metódou start(). Metóda je vykonaná vždy, keď sa aplet stane v okne prehliadača viditeľný. Na rozdiel od predchádzajúcej metódy môže byť pre aplet volaná opakovane.
- public void paint(java.awt.Graphics g)
- Metóda je volaná v prípade, kedy je nutné prekresliť obsah okna. Na objekt triedy Graphics možno kresliť bežnými metódami.
- public void stop()
- Činnosť apletu je metódou stop ukončená. Dôjde k tomu, keď aplet prestane byť v okne prehliadača viditeľný. Ak sa aplet stane opäť viditeľný, je vykonaná metóda start(), ktorá aplet spustí. Metóda start() môže byť pre aplet volaná opakovane, je vlastne náprotivkom metódy stop(). Používa sa často v prípade, keď applet vykonáva výpočtovo náročné činnosti, napr animácie.
- public void destroy()
- Metóda je volaná pri uvoľnení apletu z pamäte, má podobnú funkciu ako deštruktor. Pre aplet je volaná len raz.
public class NovyApplet extends java.applet.Applet
{
public void init() {
// kód vykonávaný pri inicializácii
}
public void start() {
// kód vykonávaný pri spustení
}
public void stop() {
// kód vykonávaný pri zastavení
}
public void destroy() {
// kód vykonávaný pri ukončení
}
public void paint(java.awt.Graphics g)
{
// kód vykonávaný pri prekreslovaní
}
}
Životný cyklus appletu
Prvý Applet
Vytvorte applet, ktorý po spustení vypíše "Ahoj Applet".
Vytvorenie appletu v NetBeans
1. Vytvorenie projektu
V prostredí Netbeans vytvorne nový, prázdny projekt. V časti Práca_v_NetBeans je návod ako vytvoriť nový projekt. V druhom krou pri vytváraní projektu (Name and Location) treba zrušiť zaškrknutie "Create Main Class".
2. Vytvorenie nového appletu
Do projektu pridáme novú triedu: File -> New File. Vyberieme kategóriu Java a typ súboru Applet
V ďalšom krku zvolíme názov appletu (napríklad NovyApplet) a dokončíme sprievodcu.
3. Doplnenie zdrojového kódu
Z predchádzajúceho textu vieme, že o vykreslovanie obsahu appletu sa stará metóda paint. Doplňme teda metódu paint do nášho zdrojového kódu.
public class NovyApplet extends java.applet.Applet
{
public void init() {
}
public void paint(java.awt.Graphics g)
{
g.drawString("Ahoj Applet",5,25);
}
}
Pre vykreslenie textu do apletu existuje metóda drawString triedy Graphics. Prvý parameter tejto metódy je reťazec, ktorý sa má vypísať. Druhý a tretí parameter sú súradnice (v pixeloch) bodu v ktorom sa daný text vykreslí.
4. Spustenie appletu Keďže applet nemá metódu main, nedá sa spustiť pomocou skratky F6. Použijeme skratku Shift+F6, ktorá má význam: spusti aktuálny súbor.
Vytvorenie appletu v SciTe
1. Vytvorenie zdrojového kódu
V novom, prázdnom adresári vytvorte nový súbor, do ktorého skopírujte zdrojový kód uvedený vyššie.
2. Spustenie appletu
- Vytvorený program zostavte (F7 - Build). Na disku sa vytvorí súbor NovyApplet.class
- Pripravte si HTML súbor (spuscac.html), ktorý bude slúžiť ako spúšťač appletu:
<html>
<applet code="NovyApplet.class" height=200 width=320>
</applet>
</html>
Tento súbor môžeme spustiť priamo vo internetovom prehliadači, alebo pomocou aplikácie appletviever.
Applet viewer
Práca s sppletom vo webovom prehliadači nie je príliš pohodlná. Jej najväčšou nevýhodou je fakt, že prípadné zmeny v zdrojovom kóde appletu sa v prehliadači neprejaví ani pri opakovanom načítaní www stránky. Prehliadač teda musíme reštartovať. Existuje aplikácia, ktorá sa používa pre zobrazovanie appletov s názvom appletviewer. Appletviewer sa používa pre zobrazenie appletu uvedeného v HTML kóde stránky. Ostatný HTML kód stránky ignoruje. Spustíme ho nasledujúcim príkazom:
appletviewer html_subor_s_appletom.html