Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

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

Podobné prezentace


Prezentace na téma: "Applety Applet ( Application program–let ) je javský program upravený ke spuštění v klientově prohlížeči ( browseru ). Prohlížeč je aplikace ( application."— Transkript prezentace:

1 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

2 HTML stránka s applety Tomcat A Hi ! B < HTML > Hello Duke !
< APPLET CODE= xxx.class CODEBASE=... ARCHIVE=mysql-connector-java 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

3 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: PJV10

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 “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 = “ /far/classes” CODE = “proj.X.class” /proj X.class package proj; class X { .. } PJV10

12 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

13 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

14 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

15 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

16 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

17 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

18 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


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

Podobné prezentace


Reklamy Google