Applety Applet ( Application program–let ) je javský program upravený ke spuštění v klientově prohlížeči ( browseru ). Prohlížeč je aplikace ( application.

Slides:



Advertisements
Podobné prezentace
Základy HTML – vkládání objektů
Advertisements

(instance konkrétní třídy)
Jazyk HTML. Zdrojový kód  Elementy obsah obsah př. důležité př. důležité př. př.
Vytvoření dokumentu bylo financováno ze zdrojů Evropského sociálního fondu a státního rozpočtu ČR. Název projektu: Výuka programování na střední škole.
Vývoj aplikací s využitím JavaFX
Tvorba www stránek Obrázky, animace a transparentnost, grafická menu a klikací oblasti obrázku (1.část) Ing. Miroslav Vachůn, Ph.D.
Talend Open Studio MDM Ing. David Pejčoch Tutorial.
Dynamické dokumenty na straně klienta Informatika pro ekonomy I přednáška 5, 6.
Pole, ukazatele a odkazy
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Uživatelská rozhraní Uživatelská rozhraní 9. cvičení.
PJV151 Vnořené a vnitřní členy mohou být členy tříd a interfejsů. Je-li X obalem Y a Y je obalem Z, pak Z získá jméno X$Y$Z - kompilací vzniknou classy.
Počítače a programování 1. Obsah přednášky Výjimky - základní typy výjimek Způsoby zpracování výjimek.
4IT1014IT101 Pátá přednáška Datové struktury - pokračování Statické prvky třídy.
C++ Přednáška 3 Konstantní a statické členy tříd, ukazatel this, konstantní instance třídy Ing. Jiří Kulhánek , kat. 352, VŠB TU Ostrava 2004.
C# pro začátečníky Mgr. Jaromír Osčádal
J a v a Začínáme programovat Lucie Žoltá metody, objekty, konstruktor.
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
(programové vybavení pro přenos a zobrazení dat z IS PCZ Argis)
Jazyk HTML.
C# - Exceptions (výjimky)
Objektové programování
Podpora vláken a jejich synchronizace v jazyce C# Jan Kučera Jan Mittner Petr Effenberger 4IT353 Klient/server aplikace v Javě.
Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -
Seminář C cvičení Obsluha výjimek Ing. Jan Mikulka.
Vypracoval: Ondřej Dvorský Třída: VIII.A
PRÁCE S VLÁKNY A APLIKAČNÍ DOMÉNY V.NET FRAMEWORK APLIKACÍCH Architektura technologie.NET Jan Martinovič, FEI - Katedra Informatiky.
ActionScript Moderní počítačové aplikace. Charakteristika Je odvozen od JavaScriptu Integruje do Flashe interaktivní ovládání Umožňuje vytvořit přehledné.
Počítače a programování 1
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
KASKÁDOVÉ STYLY 1. 2 PRVNÍ STANDARD (CSS1) BYL PŘEDSTAVEN V ROCE 1996, PROTO STARŠÍ PROHLÍŽEČE ("ČTYŘKOVÉ" VERZE) IE A NN KASKÁDOVÉ STYLY NEPODPORUJÍ.
Algoritmizace a programování Objektově orientované programování - 16 Mgr. Josef Nožička IKT Algoritmizace a programování
DHTML Jan Felger. Kapitola 0: Základní tagy Základy HTML © Jan Felger 2005 Úvod Tato prezentace zobrazuje pouze zcela základní minimum znalostí, které.
Dílna Caché II. CSP pro pokročilé Tomáš Vaverka. Zdroje HTML Tag Reference v sekci Reference Material v dokumentaci Caché HTML Tag Reference v sekci Reference.
C# - předávání parametrů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
OSNOVA: a) Přetížení členských funkcí b) Dědičnost tříd Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 2 pro obor EST BPC2E.
Dědičnost - inheritance dědičnost je jednou z forem znovupoužitelnosti dědičnost je jednou z forem znovupoužitelnosti B A Třída A je předkem třídy B Třída.
Úvod do JavaScriptu JavaScript je p JavaScript je programovací jazyk, který se používá na webových stránkách. JavaScript je typu KLIENT - KLIENT To znamená,
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
TNPW1 Technologie pro publikování na webu Cvičení č. 2 Překlad URL na fyzickou adresu stránky Editor Macromedia Homesite „Hello world“ v XHTML (úvod do.
Šesté cvičení Výjimky Balíky.
1 Počítače a programování 1 13.přednáška. 2 Obsah přednášky Vstupy a výstupy – 1.část.
Úvod do PHP IZI 228.
Netrvaloppa21 Vytvořte třídu Student pro reprezentaci struktury student na ZČU. Atributy třídy budou fakulta a osobniCislo. Název třídy: Student proměnné.
:: java advanced imagingds :: 36APG - JAI david sedláček javaai/jai/index.html.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
PHP Programy pro tvorbu WWW stránek - 01
Petr Chmelař UIFS FIT VUT JAVA pro PDB Kafe? Jako C++ Zrníčka 1 / 12 Java rychlokvaška pro PDB [ ]
Strategy. Motivace Různé algoritmy pro stejnou akci Hromada kódu v mnoha podmínkách Důsledky  Komplexnost  Špatná čitelnost  Těžká správa kódu  Těžka.
JavaScript úvod. Jazyky webového vývojáře Dynamická stránka  aktivně mění svůj obsah v reakci na činnost uživatele  zpracování na straně serveru (PHP,
Template Method. Motivační příklad – reálný svět Čaj 1) Uvař vodu 2) Dej do hrnku sáček čaje 3) Zalij hrnek 4) Přisyp cukr a vymačkej citrón Káva 1) Uvař.
Programování v MATLABu © Leonard Walletzký, ESF MU, 2000.
PJV16 1 Dokumentace Tvorba dokumentace byla vždy útrpnou záležitostí neboť: programátoři ji krajně neradi dělají - a pokud - tak až nakonec, nebývala žádná.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
PJV15 1 Vnořené ( nested ) a vnitřní ( inner ) členy Třídy či interfejsy mohou být členy tříd či interfejsů. Je-li X obalem Y a Y obalem Z, pak Z získá.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Bc. Vladimír Holubec Bc. Nikola Němcová
Instalace Javy ( pro Windows )
Generické typy jsou třídy či interfejsy deklarující tzv. typové parametry jimiž: systematizují typovou kontrolu kompilátorem, vyjadřují jasněji smysl,
Java 8: Mary Had a Little Lambda
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Polymorfismus = Mnohotvarost
RMI = Remote Method Invocation
Reflexe jako introspekce
C# přehled vlastností.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
Výčtové typy ( Java 5 ) Výčtové typy jsou speciální třídy zavedené pro větší bezpečí a pohodlí. V nejjednodušší variantě se definují příkladmo takto:
Transkript prezentace:

Applety Applet ( Application program–let ) je javský program upravený ke spuštění v klientově prohlížeči ( browseru ). Prohlížeč je aplikace ( application program ), který stáhne z http-serveru soubor, interpretuje HTML a další soubory, čímž vytvoří HTML stránku. Jsou-li ve stránce značky: <APPLET ....> .... </APPLET> či od HTML5 , <OBJECT> …. </OBJECT>, prohlížeč vytvoří ve stránce appletový panel, stáhne bytekód programu, tj. soubor typu .class, a spustí ho. Prohlížeč musí mít lokálně instalovaný JRE ( Java Runtime Environment ), který obsahuje JVM a příslušné balíčky. Je-li instalovaný JRE starší verze, mohou vzniknout potíže – nejspíše proto, že balíčky neobsahují novější třídy. Ve stránce může být více appletových okének s různými applety, které mohou mezi sebou komunikovat. PJV10

HTML stránka s applety Tomcat A Hi ! B < HTML > Hello Duke ! < APPLET CODE= xxx.class CODEBASE=... ARCHIVE=mysql-connector-java-3.0.7-stable-bin.jar;… NAME=A WIDTH=... HEIGHT=... ALIGN=... > A Hi ! < PARAM NAME=... VALUE=... > < PARAM NAME=... VALUE=... > </ APPLET > blablablablablablabla B < APPLET CODE= yyy.class CODEBASE=... NAME=B WIDTH=... HEIGHT=... ALIGN=... > Tomcat </ APPLET > blablablablablablablablabla </ HTML > PJV10

Applety Bytekód appletu se zpravidla prezentuje vizuálně v okénku - případně i akusticky – a samozřejmě může skrytě dělat rozmanité výpočty. Applet nemůže škodit klientskému počítači, neboť nemůže: přistupovat k lokálním souborům, zjišťovat a měnit vlastnosti systému, vytvářet knihovny a definovat nativní metody, spouštět programy, navazovat komunikaci s třetí stranou. Je-li však applet podepsaný ( signed ), může klient tato omezení zmírnit svojí politikou ( policy ) – svolením ( grant ) k daným operacím. Viz: http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html http://www-personal.umich.edu/~lsiden/tutorials/signed-applet/signed-applet.html http://www.codeproject.com/KB/java/Singed_Applet.aspx http://www.gios.cz/wiki/index.php/Jak_vytvorit_self-signed_applet PJV10

Konstrukce appletu Applety jsou potomky třídy java.applet.Applet či javax.swing.JApplet. Prohlížeč vytvoří instanci stáhnuté třídy – leč jen s užítím jejího bezparametrického konstruktoru - jímž tedy nelze instanci parametrizovat. To lze učinit pomocí značek <PARM NAME= … VALUE= … > Metoda main( String[ ] args ) je nepořebná. Třídy Applet a JApplet neobsahují žádné přípravy k animacím ( Thread, Runnable, run( ) apod. ) - ty je případně třeba přidat v potomcích. Ke konstrukci je nutný balíček java.applet s třídou Applet a interfejsy: AudioClip - s metodami play( ), loop( ), stop( ). AppletContext – pro popis prostředí appletu, tj. dokumentu v němž se nalézá a pro přístup k dalším appletům. AppletStub – pro návaznost na browser. PJV10

java.applet Applet Container Panel Object Component JApplet java.lang Object AppletContext ImageObserver java.awt Component MenuContainer AudioClip Accessible java.awt Container AppletStub java.awt Panel Accessible Applet javax.swing JApplet RootPane Container PJV10

Třída java.applet.Applet Konstruktor je bez parametrů. Čtyři prázdné metody volá browser ( nikoli programátor ) a to při: public void init( ) – inicializaci jež supluje činnost konstruktoru public void start( ) – znovuobjevení appletu, start animací public void stop( ) – skrytí appletu, zastavení animací public void destroy( ) – zrušení appletu, uvolnění zdrojů public String getParameter( String key ) – získání hodnoty z PARM public URL getCodeBase( ) – získání lokace bytekódu public URL getDocumentBase( ) – získání lokace HTML stránky public AppletContext getAppletContext ( ) public Image getImage( URL u, String name ) – stažení obrázků, což zařídí browser - tedy není třeba MediaTracker. public void showStatus( String msg ) – zápis do stavové řádky PJV10

Třída java.applet.Applet public AccessibleContext getAccessibleContext ( ) - kontext public String getAppletInfo ( ) – popis appletu pro uživatele public String[ ] [ ] getParameterInfo( ) – pro popis vstupních parametrů public static final AudioClip getAudioClip( URL u ) – stažení zvuku public AudioClip getAudioClip( URL u, String name ) – stažení zvuku public void play( URL u, String name ) – přehrání zvuku public Locale getLocale( ) – získání místních specifik public void resize( … ) – změna velikosti okénka public boolean isActive( ) – aktivita public void setStub( AppletStub stub ) PJV10

Třída javax.swing.JApplet obohacuje applet o možnost vrstvení, zasklení a menu. protected JRootPane createRootPane( ) get/set RootPane, ContentPane, GlassPane, LayeredPane get/set JMenuBar přepisuje metody: public void update( Graphics g ) public void remove( Component comp ) PJV10

Interfejs java.applet.AppletContext umožňuje přístup k prohlížeči public Applet getApplet( String name ) – přístup k appletu na stránce. public Enumeration getApplets( ) – výčet appletů na stránce z téhož hostu. public AudioClip getAudiolip( URL u ) – stažení zvuku public Image getImage( URL u ) – stažení obrázku public void showDocument( URL u, String target ) – ukáže další stránky v definovené okně target. public void showStatus( String status ) – ukázuje stav Pro práci se streamy slouží: public Iterator getStreamKeys( ) public InputStream getStream( String key ) public void setStream( String key, InputStream is ) PJV10

appletviewer Je standardní tester appletů dodávaný v jdk/bin/ Jeho vstupem je HTML-stránka s extenzí .html nebo .htm . Avšak interpretuje jen úsek <applet> ... </applet> Umožňuje testovat chování při volání jeho metod z browseru init - start – paint stop start – paint stop - destroy PJV10

“http://server/... /far/classes” Code a Document somedirectory Lokálně: A.html /classes < APPLET CODEBASE = classes CODE = “proj.X.class” /images /proj X.class GIF package proj; class X { .. } Vzdáleně: somedirectory server/... A.html /classes < APPLET CODEBASE = “http://server/... /far/classes” CODE = “proj.X.class” /proj X.class package proj; class X { .. } PJV10

Syntax tagu APPLET < APPLET { CODE = appletFile | OBJECT = objectFile } [ CODEBASE = codebaseURL | . ] default is dot. WIDTH = pixels HEIGHT = pixels [ ARCHIVE = "file1, file2" ] preloaded [ NAME = appletInstanceName ] [ ALIGN = alignment ] [ VSPACE = pixels ] [ HSPACE = pixels ] [ ALT = alternateText ] > [ < PARAM NAME = name VALUE = value > ]* [ alternateHTML ] </APPLET> PJV10

Applet i aplikace Hlavní rozdíl mezi appletem a aplikací je způsob použití a spouštění – vlastní program se liší jen okrajově. Lze vytvářet programy, které lze spouštět jako aplikace i jako aplety. Ježto Applet i JApplet jsou potomci java.awt.Panelu, lze tak s nimi nakládat v aplikacích. Nutno však volat metodu init( ) a start( ), aby provedly činnosti v nich definované. Způsob předání parametrů se liší – což je třeba vyřešit v úvodu programu. Případné ovládání metod start( ), stop( ) a destroy ( ) musí vyřešit aplikace. PJV10

Program jako aplet i aplikace (1/2) class Program extends Applet { boolean isStandalone = false; String var = null; public String getParameter( String key, String defValue ) { // aux. method return isStandalone ? System.getProperty( key, defValue ) : getParameter( key ) != null ? // inherited method call getParameter( key ) : // inherited method call defValue ; } public void init( ) { var = this.getParameter(“KEY", “XYZ"); // aux. method call public void start( ) { ... } PJV10

Program jako applet i aplikace (2/2) public static void main( String[ ] args ) { Program pgm = new Program( ); pgm.isStandalone = true; Frame frame = new Frame( “Frame with Applet“ ); frame.add( pgm, BorderLayout.CENTER ); pgm.init( ); pgm.start( ); frame.setBounds( ... ); frame.setVisible( true ); } } // end of Program Program bude mít v proměnné var řetěz ABC. Spustí se jako aplikace takto: java Program –DKEY=ABC applet takto: appletviewer program.html přičemž uvnitř bude <PARAM NAME=KEY VALUE=ABC > PJV10

Další možnosti Applet může ke komunikaci s člověkem používat také: Frame, JFrame, Dialog, FileDialog či JFileChooser a jejich potomky. Tisk pomocí System.out.println( … ) se svede do Java console prohlížeče. PJV10

Double buffering class MyApplet extends Applet { Graphics bufferGraphics; Image offscreen; Dimension dim; public void init( )  {   dim = this.getSize(); offscreen = createImage( dim.width, dim.height ); bufferGraphics = offscreen.getGraphics( ); } public void update( Graphics g )  {   paint( g ); } public void paint( Graphics g )  {   bufferGraphics.clearRect( 0, 0, dim.width, dim.width );    bufferGraphics.setColor( … );    bufferGraphics.fillRect( … );    g.drawImage( offscreen, 0, 0, this ); PJV10

Archive Parametr ARCHIVE umožňuje appletu stáhnout další soubory a balíčky v komprimované formě jar nebo zip . To je výhodné, neboť přenos je hromadný a kratší. APPLET = “ file1, file2, ... “ Žel, některé prohlížeče tuto možnost interpretují poněkud jinak. PJV10