Appletek. Java tutorial. Mi is egy applet? Pe lda. Hianyos HTML fajl. Hogyan hasznalom?



Hasonló dokumentumok
Nagy Gusztáv Java programozás 1.3. verzió február

KONVERZIÓ OPTIMALIZÁLÁS LÉPÉSBEN

Szoftverfejleszté s. Az UML modellezé s alapjai

Silverlight 4 A technológia, és ami mögötte van fejlesztőknek HTML 5 ismertetővel bővített kiadás

A könyv nyomtatott verziója megvásárolható a könyvesboltokban, és a kiadó webáruházában:

VII. Az Al kot m ny b r s g el n k nek v g z se

BALATON szelet Nyerj vagy Nyerj!

Bojlim ix ek. Akülönbözõ kiállításokon, illetve. Mi jó, és mi nem? (1. rész) HUB GENDERS ÍRÁ SA

ÉR ZÉ KE LÉS PSZI CHO LÓ GIA A DI GI TÁ LIS MÉ DI Á RÓL

Pál fel tá ma dás hi té rõl

A tökéletes telepítés - avagy hogyan is kell jól csinálni?

Programozási ismeretek. Visual Studio 2008/2010 Express Edition Ismerkedés a fejlesztőrendszerrel

AZ AL KOT MÁNY BÍ RÓ SÁG HATÁROZATAI

LUK ÁCS TA MÁS. Add, hogy lás sak... SEMJÉN ZSOLT: JUS RESISTENDI

NYELV ÉS BE SZÉD MINT A KARTEZ IÁNUS EM BER DIF FER EN TIA SPECI FI CA- JA

Húsz éve ka to nák kö zött

Haladási utasítások Programozási nyelvek

OPERÁCIÓS RENDSZEREK ÉS FÁJLKEZELÉS 1. Operációs rendszerek

Dobozos vagy egyedi szoftver

És bizony: Ha az emberek nincsenek valami hatalmas és kemény kontroll alatt, felfalják egymást. Ez nem igaz.

Hit, remény, a hévízgyörki református egyházközség hírlevele l 2011/május

Mit tehetsz, hogy a gyereked magabiztosabb legyen?

Hát rány ban az előny A szociokulturálisan hátrányos tehetségesek

C++ programozási nyelv Konstruktorok Gyakorlat

Full Circle AMATŐR CSILLAGÁSZAT A LINUX BEMUTATJA AZ ÉGBOLTOT. full circle magazin 62. szám 1

Ha tehetséges a gyerek

A KI HALL GA TÁ SI TECH NI KÁK EM LÉ KE ZET RE GYA KO ROLT HA TÁ SA: A SZEM TA NÚ-EM LÉ KE ZET SÉ RÜ LÉ KENY SÉ GÉ NEK BI ZO NYÍ TÉ KAI

Közgyűlésekmindháromegyházkerületben Tisztújításazészakiakcsaládjában

C# feladatgyűjtemény

Biztonságos programok fejlesztése és a web alapú rendszerek biztonsági sajátosságai

Átírás:

Appletek ő A Java nyelv elsodleges szamu reklamja ő HTML oldalak aktıvva teve se hez ő Kisalkalmaza s ő WEB-b nge szoaltal futtatott Java program ő Egy lehetose g (a sok k zól) a Java-ban ha lűzatos programok ke szıte se re ő Grafikus felhasznalűi felólet programocska Mi is egy applet? ő Haszna ljuk a java.applet csomagot ő Az Applet oszta ly a Panel lesza rmazottja ő Az appletek az Applet osztaly pe lda nyai, azaz egy objektum, e s nem egy alkalmazas ő Egy applet a b nge szoablakaban egy terólet, amire kirajzolhatja magat (grafikus felh. fel.) ő Persze, ha akar - e s megengedik neki - nyithat u jabb Window-kat (pl. Frame-eket) Pe lda import java.awt.*; public HelloApplet(){ add(new Label("Hello")); ő Az osztaly e s a konstruktor is publikus Hogyan hasznalom? <html><head></head><body> <applet code=helloapplet.class width=300 height=200> </applet> </body></html> ő Ezt beteszem egy html fajlba, pl. hello.html Hianyos HTML fajl <applet code=helloapplet.class width=300 height=200> </applet> ő Noha nem helyes HTML dokumentum, a b nge szok t bbse ge ezt is tudja e rtelmezni 1

Kiprűbalas ő Legyen a HTML fajl e s a hivatkozott Java class fajl ugyanabban a k nyvtarban ő Egy WEB-b nge szovel jelenıtsók meg a HTML oldalt ő Ha me gsem megy: É Nincs engede lyezve a b nge szoben a Java É Nem publikus az appletónk vagy a parame ter ne lkóli konstruktora É Tu l re gi a b nge szobe integralt virtualis ge p ő a Java plug-in segıthet ő Az Emberke programot ırjuk at appletre! Mitol fut az applet? ő A b nge szobet lti a HTML oldalt É let lti egy HTTP szervertol É beolvassa fajlbűl a helyi ge pen ő Ertelmeze se k zben megtalalja az applet tag-et ő Ahonnan a HTML oldalt, let lti a class fajlt ő Pe ldanyosıtja az applet osztalyt a parame ter ne lkóli konstruktorral () ő Hozzarendel egy teróletet a b ngeszoablakbűl, width e s height alapjan (k telezomegadni) ő Kirajzolja, e s veze rle st ad neki (AWT szalat) appletviewer ő A b nge szok nem frissıtik a mar egyszer bet lt tt appletet - hiaba a refresh gomb ő Ke nyelmetlen ıgy fejleszteni É minden valtoztatas utan ki kell le pni a bónge szobol, majd u jra bele pni ő Megoldas: appletviewer ő A fejlesztoi rendszer re sze (mint javac, java) ő Egy egyszer b nge szo, mely csak az appleteket jelenıti meg ő Gyorsan elindul appletviewer indıtasa $ ls HelloApplet.class HelloApplet.java hello.html $ appletviewer hello.html 2

Mire valűk az appletek? ő Egy halűzaton keresztól hasznalt program grafikus felhasznalűi felólete É Gyakran egy ve konyí kliens egy kliens-szerver architektu ra ju programban ő A kliens szamıtűge pet terheloprogram É A CPU-t e s a meműriat a kliens ge pen foglalja Biztonsa g ő Az appletet halűzatrűl t ltjók le ő Vesze lyes, nem szeretne nk, ha akarmit megtehetne ő Az appletekre szigoru biztonsagi eloır a sok vonatkoznak É szigoru bbak, mint az applikaciűk esete n ő Extra jogokat lehet persze adni nekik Mit nem tehet egy applet ő Alape rtelmeze sben egy applet É nem hasznalhat fajlokat a kliens szamıtűge pen É nem nyithat halűzati kapcsolatot mas ge pre, mint ahonnan let lt tte k É nem hıvhat natıv (nem Java-ban ırt) metűdusokat ő Jogosultsagokat biztosıtű fajlokkal ez megva ltoztathatű ő Alaırt appletek: valaki kezesse get vallal e rtók ő Ird at a sz vegszerkesztoprogramot applette! Ne a menós valtozatot, mert az Applet osztaly nem tudja a menósort ő Prűbald futtatni lokalis ge pen, illetve tavolrűl Appletek parame tereze se ő A b nge szomindig a parame ter ne lkóli konstruktort hıvja meg É gaz, ha nincs ilyen, vagy valami nem publikus É honnan is venne parame tereket ő Nem parame terezhetoa megszokott műdon ő Parame terezzók a HTML fajlbűl ő Csak String parame terek ő Trókk s műdon jut hozza a parame terekhez 3

Parame teres applet tag <applet code=helloapplet.class width=300 height=200> <param name=cımke value=kto> </param> <param name=gomb value=hello> </param> </applet> Parame ter a tve tele import java.awt.*; add(new Label( getparameter("cımke"))); add(new Button( getparameter("gomb"))); Csak az init() metűdusban hıvhatű! Ha elmarad a parame ter import java.awt.*; String s = getparameter("cımke"); if( s==null ) s = "<ures>"; add(new Label(s)); ő Az Emberke appletet lehessen parame terezni, hogy a keze kezdetben merre legyen: fel, vagy le ő Ha egyik sem, ırjunk ki hibaózenetet a szabvanyos hibacsatornara, e s legyen a keze lefele Szabvanyos kimenet: java konzol ő Hol jelenik meg a szabvanyos kimenet e s hibacsatorna rendes b nge szok (nem appletviewer) esete n? ő Bekapcsolhatű az u n. Java konzol ő Innen tudhatjuk meg pl. a hibak okat ő Prűbald ki az Emberke appletet ıgy! 4

Applet e s applikaciű egyszerre ő Sokszor u gy ke szıtónk el egy klienst, hogy az applikaciűke nt is e s appletke nt is indıthatű legyen ő Ehhez ógyesen kell hıvogatni az inicializalű rutinokat ő Prűbaljuk ki mondjuk az Emberke applettel! import java.applet.*; import java.awt.*; String s; s = getparameter("cımke"); if( s==null ) s = "<ures>"; inicializal(); public void inicializal(){ add(new Label(s)); /** Csak appletkent hıvhato! */ public HelloApplet(){ import java.applet.*; import java.awt.*; String s; public void inicializal(){ /** Applikaciobol csak ez hıvhato! */ public HelloApplet(String s) {this.s=s; inicializal(); public static void main( String[] args ){ Frame f = new Frame("Hello"); f.add(new HelloApplet("hello")); E letciklus-metűdusok ő Parame ter ne lkóli konstruktor É a b nge szoelosz r ezt hıvja meg public void init() É k zvetlenól a konstruktor utan public void start() É az init utan, illetve mindig, amikor u jra az appletet tartalmazű oldalra le pónk public void stop() É amikor elhagyjuk az appletet tartalmazű oldalt ő Teszteljók az e letciklus-metűdusokat, e s hatarozzuk meg kapcsolatukat a public void paint( Graphics g ) metűdussal. 5

Ke pek e s hangok ő Az appleteket eleve arra talaltak ki, hogy HTML oldalakat csicsazzunk ki velók ő Igy ke pfajlok megjelenıte se t e s hangfa jlok lejatszasat igazan k nny ve tette k ő Az applet szarmazasi helye rol egyszer en let lthetok, ne hany metűdussal k nnyen haszna lhatűk ő Persze sima applikaciűkbűl is lehet ke peket e s hangokat kezelni, csak bonyolultabb Hangfa jl leja tsza sa Hangfa jl leja tsza sa public class Hangos extends Applet { play( getcodebase(), "audio/laser.wav" ); AudioClip clip = getaudioclip( getcodebase(), "audio/laser.wav" ); clip.play(); clip.loop(); Ke pfa jl megjelenıte se public class Hangos extends Applet { Image kep; kep = getimage( getcodebase(), "pics/hills.gif"); public void paint(graphics g){ g.drawimage(kep,0,0,this); Tudnivalűk ke pekrol ő A this a drawimage parame tere ben egy ImageObserver - az Applet megvalűsıtja ő Let lte s: megjelenıtle skor, nem a getimage hatasa ra É Lehetose g van elore let lteni a ke pet: MediaTracker ő Aszinkron t ltodik le a ke p 6

Anima ciűk ő Sok ke pet let ltónk É pl. elore egy MediaTracker segıtse ge vel ő Egy kól n ve grehajtasi szalat csinalunk, mely valtogatja a ke peket bizonyos idok z ne nt Az applet tag parame terei ő Honnan kell let lteni: a HTML oldalhoz ke pest relatıv URL is megadhatű: codebase="applets/classes" ő Gyakran az applet kűdjat (a hasznalt egye b - nem standard - osztalyok kűdjaval e s) a haszna lt eroforra sfa jlokkal (ke pek, hangok) egyótt sszecsomagoljuk egy jar fajlba, e s azt t ltetjók le a b nge szovel É hate konyabb tud lenni JApplet ő U gy, ahogy az awt-beli komponenseknek a Swing-ben is vannak megfeleloik, az Applet osztalynak is van: javax.swing.japplet ő Haszna lhatjuk Applet helyett appletekhez ő Tartalmazhat mar JMenuBar-t is 7