© Kozsik Tamás 2000-2006 Appletek A Java nyelv elsődleges számú reklámja HTML oldalak aktívvá tevéséhez Kisalkalmazás WEB-böngésző által futtatott Java.

Slides:



Advertisements
Hasonló előadás
© Kozsik Tamás Különböző nyelvekhez igazítás Internationalization - i18n.
Advertisements

4. alkalom – Hálózat Kezelés
Osztály leszármaztatás
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
II. Grafikus felhasználói interfész
C++ programozási nyelv Gyakorlat hét
FRAME-k (keretek). FRAME-k A frame-ek (keretek) segítségével a képernyőt felosztva egyszerre jeleníthetünk meg több webes dokumentumot a képernyőn. Fejlec.html.
Többfelhasználós és internetes térkép kezelés, megjelenítés.
Java Technológia Standard Edition
A Java programozási nyelv
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Adatbányászati technikák (VISZM185)
Öröklődés 2..
RMI = Remote Method Invocation
© Kozsik Tamás Tömbök, kollekciók és egyéb alaposztályok.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
© Kozsik Tamás Grafikus felhasználói felületek.
© Kozsik Tamás JavaBeans Nagyon divatos technológia Nem tévesztendő össze az Enterprise Java Beans technológiával Programozási konvenciók gyűjteménye.
Bevezetés a Java programozásba
Fájlkezelés, IO Kivételkezelés Belső osztályok
Osztályok Garbage collection.  általában minden osztálynak vannak adattagjai és/vagy metódusai ◦ adattagok megadása:  [láthatóság] [static] [final]
Abstract osztályok és interface-ek Beolvasás és kiíratás 7. gyakorlat.
Fejlett Programozási Technológiák II. Világos Zsolt 1. gyakorlat.
Tömbök ismétlés Osztályok Java-ban Garbage collection
Az objektum-orientált tervezési alapelvek kritikai vizsgálata
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
A Java programozási nyelvSoós Sándor 1/16 Java programozási nyelv 6. rész – Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Java programozási nyelv 3. rész – Osztályok I.
A C++ programozási nyelvSoós Sándor 1/15 C++ programozási nyelv Gyakorlat hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
Hálózatkezelés, java.net Elek Tibor
C# tagfüggvények.
C# tagfüggvények.
Csomagok.
Annotációk a Java 5 nyelvben Kozsik Tamás. Annotációk Módosítószavak bővítése A programszöveg elemeihez rendelhetők –Csomagokhoz, típusokhoz, metódusokhoz,
© Kozsik Tamás Csomagok. © Kozsik Tamás A program tagolása Típusdefiníciók (osztályok, interfészek) Metódusok Blokk utasítások Csomagok.
Kivételkezelés.
Appletek és Servletek Demeter Lehel 641-es csoport.
Nem irodai programok fájltípusai
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Az Interneten az állományok mozgatására leggyakrabban az FTP program használatos. Az FTP felhasználók általában az alábbi funkciókkal rendelkeznek: kapcsolódás.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
Eu-háló Partnerszervezeti Kommunikációs Center január 17.
3. előadás.  Apache szerver tudnivalók  Az index.php .htaccess – web-szerverünk beállításai  Konfigurációs állományok  Adatbázis kapcsolódás beállítása.
Visual Basic 2008 Express Edition
Java programozási nyelv Filekezelés
Java programozási nyelv Metódusok
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
Java programozási nyelv Adatbekérés konzolról
Programozás III GAFIKA.
World Wide Web Szabó Péter Számítástechnika-technika IV. évfolyam.
14. Szóbeli középszintű informatika tétel:
Webes MES keretrendszer fejlesztése Kiss Miklós Dániel G-5S8 Tervezésvezető: Dr. Hornyák Olivér.
Java web programozás 5..
A böngészőprogram használata. A böngészők értelmezik a html nyelvet, a javascript kódokat és a php kódokat is. Majd ezeket lefuttatja, és azok alapján.
Opencms modul fejlesztés Krizsán Zoltán. Modulok fajtái Nincs előírás, csak tipikus tennivalók: –Content type: új típus(oka)t vezet be. –Template: új.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Programozás III ÖTLETEK A FELADATMEGOLDÁSHOZ. A HF-EK APROPÓJÁN Néhány javaslat: 1. Jó lenne, ha a feladatmegoldás előtt átnéznék az előadás-anyagokat.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
A távoli asztal, valamint az Endnote használata a távoli asztalon Skultéti Attila
Appletek A Java nyelv elsődleges számú reklámja
Információ és kommunikáció
Az FTP felhasználók általában az alábbi funkciókkal rendelkeznek:
Thread és Task.
Előadás másolata:

© Kozsik Tamás Appletek A Java nyelv elsődleges számú reklámja HTML oldalak aktívvá tevéséhez Kisalkalmazás WEB-böngésző által futtatott Java program Egy lehetőség (a sok közül) a Java-ban hálózatos programok készítésére Grafikus felhasználói felületű programocska

© Kozsik Tamás Mi is egy applet? Használjuk a java.applet csomagot Az Applet osztály a Panel leszármazottja Az appletek az Applet osztály példányai, azaz egy objektum, és nem egy alkalmazás Egy applet a böngésző ablakában egy terület, amire kirajzolhatja magát (grafikus felh. fel.) Persze, ha akar - és megengedik neki - nyithat újabb Window -kat (pl. Frame -eket)

© Kozsik Tamás Példa import java.applet.Applet; import java.awt.*; public class HelloApplet extends Applet { public HelloApplet(){ add(new Label("Hello")); } Az osztály és a konstruktor is publikus

© Kozsik Tamás Hogyan használom? <applet code=HelloApplet.class width=300 height=200> Ezt beteszem egy html fájlba, pl. hello.html

© Kozsik Tamás Hiányos HTML fájl <applet code=HelloApplet.class width=300 height=200> Noha nem helyes HTML dokumentum, a böngészők többsége ezt is tudja értelmezni

© Kozsik Tamás Kipróbálás Legyen a HTML fájl és a hivatkozott Java class fájl ugyanabban a könyvtárban Egy WEB-böngészővel jelenítsük meg a HTML oldalt Ha mégsem megy: –Nincs engedélyezve a böngészőben a Java –Nem publikus az appletünk vagy a paraméter nélküli konstruktora –Túl régi a böngészőbe integrált virtuális gép a Java plug-in segíthet

© Kozsik Tamás Feladat Az Emberke programot írjuk át appletre!

© Kozsik Tamás Mitől fut az applet? A böngésző betölti a HTML oldalt –letölti egy HTTP szervertől –beolvassa fájlból a helyi gépen Értelmezése közben megtalálja az applet tag-et Ahonnan a HTML oldalt, letölti a class fájlt Példányosítja az applet osztályt a paraméter nélküli konstruktorral (...) Hozzárendel egy területet a böngeszőablakból, width és height alapján (kötelező megadni) Kirajzolja, és vezérlést ad neki (AWT szálat)

© Kozsik Tamás appletviewer A böngészők nem frissítik a már egyszer betöltött appletet - hiába a refresh gomb Kényelmetlen így fejleszteni –minden változtatás után ki kell lépni a büngészőből, majd újra belépni Megoldás: appletviewer A fejlesztői rendszer része (mint javac, java) Egy egyszerű böngésző, mely csak az appleteket jeleníti meg Gyorsan elindul...

© Kozsik Tamás appletviewer indítása $ ls HelloApplet.class HelloApplet.java hello.html $ appletviewer hello.html

© Kozsik Tamás Mire valók az appletek? Egy hálózaton keresztül használt program grafikus felhasználói felülete –Gyakran egy „vékony” kliens egy kliens-szerver architektúrájú programban A kliens számítógépet terhelő program –A CPU-t és a memóriát a kliens gépen foglalja

© Kozsik Tamás Biztonság Az appletet hálózatról töltjük le Veszélyes, nem szeretnénk, ha akármit megtehetne Az appletekre szigorú biztonsági előírások vonatkoznak –szigorúbbak, mint az applikációk esetén Extra jogokat lehet persze adni nekik...

© Kozsik Tamás Mit nem tehet egy applet Alapértelmezésben egy applet –nem használhat fájlokat a kliens számítógépen –nem nyithat hálózati kapcsolatot más gépre, mint ahonnan letöltötték –nem hívhat natív (nem Java-ban írt) metódusokat Jogosultságokat biztosító fájlokkal ez megváltoztatható Aláírt appletek: valaki kezességet vállal értük

© Kozsik Tamás Feladat Írd át a szövegszerkesztő programot appletté! Ne a menüs változatot, mert az Applet osztály nem tudja a menüsort... Próbáld futtatni lokális gépen, illetve távolról...

© Kozsik Tamás Appletek paraméterezése A böngésző mindig a paraméter nélküli konstruktort hívja meg –gáz, ha nincs ilyen, vagy valami nem publikus –honnan is venne paramétereket... Nem paraméterezhető a megszokott módon Paraméterezzük a HTML fájlból Csak String paraméterek Trükkös módon jut hozzá a paraméterekhez

© Kozsik Tamás Paraméteres applet tag <applet code=HelloApplet.class width=300 height=200>

© Kozsik Tamás Paraméter átvétele import java.applet.Applet; import java.awt.*; public class HelloApplet extends Applet { public void init(){ add(new Label( getParameter("címke"))); add(new Button( getParameter("gomb"))); } Csak az init() metódusban hívható!

© Kozsik Tamás Ha elmarad a paraméter... import java.applet.Applet; import java.awt.*; public class HelloApplet extends Applet { public void init(){ String s = getParameter("címke"); if( s==null ) s = " "; add(new Label(s)); }

© Kozsik Tamás Feladat Az Emberke appletet lehessen paraméterezni, hogy a keze kezdetben merre legyen: fel, vagy le Ha egyik sem, írjunk ki hibaüzenetet a szabványos hibacsatornára, és legyen a keze lefele

© Kozsik Tamás Szabványos kimenet: java konzol Hol jelenik meg a szabványos kimenet és hibacsatorna rendes böngészők (nem appletviewer) esetén? Bekapcsolható az ún. Java konzol Innen tudhatjuk meg pl. a hibák okát... Próbáld ki az Emberke appletet így!

© Kozsik Tamás Applet és applikáció egyszerre Sokszor úgy készítünk el egy klienst, hogy az applikációként is és appletként is indítható legyen Ehhez ügyesen kell hívogatni az inicializáló rutinokat Próbáljuk ki mondjuk az Emberke applettel!

© Kozsik Tamás import java.applet.*; import java.awt.*; public class HelloApplet extends Applet { String s; public void init(){ s = getParameter("címke"); if( s==null ) s = " "; inicializál(); } public void inicializál(){ add(new Label(s)); } /** Csak appletként hívható! */ public HelloApplet(){}... }

© Kozsik Tamás import java.applet.*; import java.awt.*; public class HelloApplet extends Applet { String s;... public void inicializál(){... }... /** Applikációból csak ez hívható! */ public HelloApplet(String s) {this.s=s; inicializál();} public static void main( String[] args ){ Frame f = new Frame("Hello"); f.add(new HelloApplet("hello"));... }

© Kozsik Tamás Életciklus-metódusok Paraméter nélküli konstruktor –a böngésző először ezt hívja meg public void init() –közvetlenül a konstruktor után public void start() –az init után, illetve mindig, amikor újra az appletet tartalmazó oldalra lépünk public void stop() –amikor elhagyjuk az appletet tartalmazó oldalt

© Kozsik Tamás Feladat Teszteljük az életciklus-metódusokat, és határozzuk meg kapcsolatukat a public void paint( Graphics g ) metódussal.

© Kozsik Tamás Képek és hangok Az appleteket eleve arra találták ki, hogy HTML oldalakat csicsázzunk ki velük Így képfájlok megjelenítését és hangfájlok lejátszását igazán könnyűvé tették Az applet származási helyéről egyszerűen letölthetők, néhány metódussal könnyen használhatók Persze sima applikációkból is lehet képeket és hangokat kezelni, csak bonyolultabb...

© Kozsik Tamás Hangfájl lejátszása import java.applet.Applet; public class Hangos extends Applet { public void init(){ play( getCodeBase(), "audio/Laser.wav" ); }

© Kozsik Tamás Hangfájl lejátszása AudioClip clip = getAudioClip( getCodeBase(), "audio/Laser.wav" );... clip.play();... clip.loop();

© Kozsik Tamás Képfájl megjelenítése import java.applet.Applet; public class Hangos extends Applet { Image kép; public void init(){ kép = getImage( getCodeBase(), "pics/hills.gif"); } public void paint(Graphics g){ g.drawImage(kép,0,0,this); }

© Kozsik Tamás Tudnivalók képekről A this a drawImage paraméterében egy ImageObserver - az Applet megvalósítja... Letöltés: megjelenítléskor, nem a getImage hatására –Lehetőség van előre letölteni a képet: MediaTracker Aszinkron töltődik le a kép

© Kozsik Tamás Animációk Sok képet letöltünk –pl. előre egy MediaTracker segítségével Egy külön végrehajtási szálat csinálunk, mely váltogatja a képeket bizonyos időközönént

© Kozsik Tamás Az applet tag paraméterei Honnan kell letölteni: a HTML oldalhoz képest relatív URL is megadható: codebase="applets/classes" Gyakran az applet kódját (a használt egyéb - nem standard - osztályok kódjával és) a használt erőforrásfájlokkal (képek, hangok) együtt összecsomagoljuk egy jar fájlba, és azt töltetjük le a böngészővel –hatékonyabb tud lenni...

© Kozsik Tamás JApplet Úgy, ahogy az awt-beli komponenseknek a Swing-ben is vannak megfelelőik, az Applet osztálynak is van: javax.swing.JApplet Használhatjuk Applet helyett appletekhez Tartalmazhat már JMenuBar -t is