Você está na página 1de 21

Visoka tehnika kola Ni

Savremene raunarske tehnologije


Internet programiranje (13)

Studijski program:

Apleti
dr Zoran Velikovi, dipl. in. el.
Decembar, 2012.

Appleti (1)

Apleti (engl. Applets) predstavljaju posebnu klasu Java programa koji se razlikuju od do sada prouavanih aplikacija. Apleti su male aplikacije razvijene u programskom jeziku Java sa sledeim specifinostima:

Smetene su na serveru; Prenose se preko Interneta; Automatski se instaliraju na klijentu; Izvravaju se kao deo Web dokumenta.

Eksplicitnije, apleti predstavljaju klasu u Javi realizovanu u grafikom okruenju. Apleti koriste Javinu grafiku biblioteku AWT (engl. Abstract Window Toolkit) i izvode se iz klase Applet. Dakle, klasa Applet se nalazi u paketu: java.applet.Applet.

Appleti (2)

U klasi Applet definisano je nekoliko metoda za upravljanje

izvravanjem apleta.

Takoe, u paketu java.applet su definisana tri interfejsa: AppleContext AudioClip AppletStub

Apleti imaju ogranieni pristup resursima klijenata, tako da se mogu izvravati bez bojazni od virusne infekcije. Okruenje u kome se izvrava aplet senaziva kontejnerom apleta koji je odgovoran za njegovo preuzimanje i ivotni ciklus. Apleti su neto drugaije struktuirani u odnosu na standardne Java aplikacije. Pogledajte strukturu Java Apleta na jednostavnom jednostavnom primeru SimpleApplet:

Appleti (3)
import java.awt.*; import java.applet.*;
Uvoze se klase grafike AWT biblioteke
Uvozi se paket applet koji sadri klasu Applet

Dekleracija klase SimpleApplet

public class SimpleApplet extends Applet { Nasleivanje klase public void paint(Graphics g) { Applet g.drawString("A Simple Applet", 20, 20); } Aplet nema metodu Main() ! }
Dekleracija metode paint() iz AWT biblioteke, SimpleApplet je redefinie. Metoda paint() se poziva svaki put kada aplet treba da osvei prikaz. Objekt g tipa Graphics opisuje grafiko okruenje u kome se aplet izvrava. Metoda drawString() lan klase Graphics, iscrtava znakovni niz na x,y lokaciji.

Appleti i HTML
HTML kod koji aplicira aplet import java.awt.*; SimpleApplet import java.applet.*; /* <applet code="SimpleApplet" width=200 height=60> </applet> */ public class SimpleApplet extends Applet { HTML kod je public void paint(Graphics g) { pod g.drawString("A Simple Applet", 20, 20); komentarom i koristi ga } appletviewer }

Izvrenje apleta se odvija uz pomo itaa Weba ili uz pomo programa za prikazivanje apleta: appletviewer-a.

ita

Appleta: Appletviewer
Kompajliranje apleta SimpleApplet

Startovanje izvrenja apleta SimpleApplet u appletviewer-u koji je iplementiran u html fajlu PokreniApp.html Rezultat izvrenja apleta: grafiki prozor apleta SimpleApplet

Appleti i dogaaji

Moe se primetiti da se aplet izvrava u grafikom prozoru. Apleti nasleuju iz klase Applet sve potrebne metode za rad u grafikom okruenju i radu sa prozorom apleta. Apletima uglavnom upravljaju dogaaji koji se mogu uporediti sa prekidnim rutinama kod mikroprocesora. Dogaaji apleta se mogu posmatrati na slian nain kao i dogaaji koji potiu od tastature ili mia. Aplet eka neki dogaaj o emu ga obavetava AWT (grafiko okruenje) pozivom procedure za obradu dogaaja. Po obavljenom poslu, aplet vraa kontrola AWT-u. Sam Aplet samo kratko vreme zdrava kontrolu nad izvravanjem. Konkretni aplet treba da redefinie osnovni skup metoda za rad sa apletom.

Appleti i osnovne metode

U klasi Applet definisane su sledee etiri metode:


init(), start(), stop(), destroy().

Metoda paint(), koja je ve koritena, je definisana klasom Component iz AWT-a. Primer u nastavku ne radi nita konkretno, ve samo prikazuje redosled kojim treba da se pozivaju metode iz strukture apleta. Kada aplet zapone rad, AWT poziva metode ovim redom:

init(), 2. start(), 3. paint().


1.

ivotni ciklus Appleta

Kada se aplet zavri pozivaju se metode sledeim redom:


1. 2.

stop(), destroy().

Za auriranje podataka u prozoru koristi se metoda repaint(), koja poseduje etiri konstruktora (oblika):
1. 2. 3. 4.

void repaint(), void repaint(int levo, int gore, int irina, int visina), void repaint(maxOdlaganje), void repaint(maxOdlaganje, int levo, int gore, int irina, int visina).

Metoda Showstatus(), prikazuje poruku u statusnom prozoru itaa Weba ili programa za prikazivanje apleta.

Struktura apleta (1)


import java.awt.*; import java.applet.*; Uvoze se klase za podrku apleta /* <applet code="AppletSkel" width=300 height=100> </applet> Nasleivanje klase Applet */ public class AppletSkel extends Applet { // Prvi poziv 1. poziv init() metode public void init() { // inicijalizacija } /* Pozvan drugi put, posle init(). Takoe pozvan kada je applet restart.*/ 2. poziv start() metode public void start() { // start ili nastavak izvravanja }

Struktura apleta (2)


// Poziv kada je aplet stopiran 3. poziv stop() metoda public void stop() { // suspenzija izvravanja } /* Poziva se kada je aplet zavren. Ova metoda se poslednja izvrava. */ 4. poziv destroy() metoda public void destroy() { // obavljanje zavretka aktivnosti } // Poziv kada se apletov prozor mora restorirati 5. poziv paint() metoda public void paint(Graphics g) { // ponovno prikazivanje sadraja prozora } }

Parametarizovani apleti

Oznaka Appleta u HTML-u omoguava prosleivanje parametara apletu. Setite se kako smo prosleivali parametre apletu iz HTML koda:

<param name = fontName value = Courier>

Za oitavanje parametara upuenih apletu iz HTML-a koristi se metoda getParametar(). Ova metoda vraa vrednost u obliku znakovnog niza. Dakle, logike i numerike vrednosti se moraju prvo pretvoriti iz znakovnog niza u njihov interni format. Pogledajmo sledei slajd sa primerom:

Appleti i param (1)


import java.awt.*; import java.applet.*; /* <applet code="ParamDemo" width=300 height=80> <param name = fontName value = Courier> <param name = fontSize value = 14> <param name = leading value = 2> <param name = accountEnabled value = true> </applet> */ String fontName; int fontSize; float leading; boolean active;
Parametri koji se prosleuju apletu ParamDemo HTML kod dopisano samo radi izvrenja u vreme razvoja apleta

Imena i vrednosti parametara koja se prenose u aplet Aplet ParamDemo

public class ParamDemo extends Applet {

Dekleracija parametara apleta koji e biti preuzeti iz HTML-a

Appleti i param (2)


// Inicijalizacija stringa koji treba da se prikae public void start() { String param; fontName = getParameter("fontName"); if (fontName == null) fontName = "Not Found"; param = getParameter("fontSize"); try { if (param != null) else fontSize = 0; } catch (NumberFormatException e) { fontSize = -1; }
Provera vraene vrednosti Provera parametra Preuzimanje parametra fontSize Preuzimanje parametra fontName

// nije pronaen

fontSize = Integer.parseInt(param);
Konverzija tipa string u integer

Appleti i param (3)


param = getParameter("leading"); try { if (param != null) // ako nije naen leading = Float.valueOf(param).floatValue(); else leading = 0; } catch (NumberFormatException e) { leading = -1; } param = getParameter("accountEnabled"); if(param != null) active = Boolean.valueOf(param).booleanValue(); }

Appleti i param (4)


// Prikaz parametara public void paint(Graphics g) { g.drawString("Font name: " + fontName, 0, 10); g.drawString("Font size: " + fontSize, 0, 26); g.drawString("Leading: " + leading, 0, 42); g.drawString("Account Active: " + active, 0, 58); } }

Interfejs AppletContext (1)

Ve je pomenuto, u paketu Java.applet su definisana tri interfejsa:


AppletContext (podaci o okruenju), AppletStub (podrka Web itaima) i AudioClip (sa metodama play(), loop() i stop()).

podaci iz okruenja u kome se aplet izvrava.

AppletContext je interfejs koji omoguava da se preuzmu


Metode koje ovaj interfejs definie su:

Za applet: getApplet(String imeApleta), Za AudioClip: getAudioClip(URL url), Za Image: getImage(URL url), Za InputStream: getStream(String klju),

Interfejs AppletContext (2)


void showDocument(URL url), void showStatus(String str), ...

Java dozvoljava da aplet uita podatke samo iz direktorijuma u kome se nalazi HTML datoteka ili klasa apleta. Imena ovih direktorijuma vraaju metode getDocumentBase() i getCodeBase() respektivno. Ove metode pripadaju klasi URL. Za uitavanje datoteke koristi se metoda showDocument(URL url) iz interfejsa AppletContext. Kada se dobije kontekst u kome se aplet izvrava moe se prikazati bilo koji dokument metodom showDocument(URL url).

Interfejs AppletContext (3)


/* Korienje konteksta apleta: getCodeBase(), showDocument() za prikaz HTML fajla. */ import java.awt.*; import java.applet.*; import java.net.*; /* <applet code="ACDemo" width=300 height=50> </applet> */ public class ACDemo extends Applet{ public void start() { AppletContext ac = getAppletContext(); URL url = getCodeBase(); // itanje url-a ovog apleta

Interfejs AppletContext (4)


try { ac.showDocument (new URL (url+"Test.html")); } catch (MalformedURLException e) { showStatus("URL not found"); } } } Datoteka Test.html koja se prikazuje mora biti u istom folderu gde se nalazi i aplet.
Prikazivanje dokumentaTest.html

Interfejs AudioClip

AudioClip je interfejs koji definie sledee metode:


play() reprodukuje sekvencu od poetka stop() prekida reprodukciju loop() reprodukcija u kontinualnoj formi

Uitavanje audio sekvence se obavlja metodom

getAudioClip().

Interfejs AppletStub obezbeuje saradnju apleta i itaa.

Você também pode gostar