Appletek A Java nyelv elsődleges számú reklámja

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
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 8. rész – Grafikus felhasználói felület Nyugat-Magyarországi Egyetem Faipari Mérnöki.
II. Grafikus felhasználói interfész
© 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.
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.
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 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.
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.
Programozás II. 3. Gyakorlat C++ alapok.
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
Fejlett Programozási Technológiák II. Világos Zsolt 1. gyakorlat.
Fejlett Programozási Technológiák II. Világos Zsolt 12. gyakorlat.
Tömbök ismétlés Osztályok Java-ban Garbage collection
X Window System A LINUX GRAFIKUS FELÜLETE Készítette: Pető László.
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.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
C# tagfüggvények.
C# tagfüggvények.
Csomagok.
© 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.
WEB MES (webes gyártásirányító rendszer)
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.
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ú,
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.
Programozás III KOLLEKCIÓK.
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..
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
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.
Információ és kommunikáció
„Designer-barát” játéklogika
Az FTP felhasználók általában az alábbi funkciókkal rendelkeznek:
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
B M Java Programozás 1. Gy: Java alapok IT A N Ismétlés ++
Thread és Task.
Folyamatok.
B M Java Programozás 5. Gy: Java alapok IT A N Adatkezelő 1.rész
Előadás másolata:

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 2000-2006

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 2000-2006

Példa Az osztály és a konstruktor is publikus 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 2000-2006

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

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

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 2000-2006

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

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 2000-2006

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 2000-2006

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

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 2000-2006

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 2000-2006

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 2000-2006

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 2000-2006

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 2000-2006

Paraméteres applet tag <applet code=HelloApplet.class width=300 height=200> <param name=címke value=kto> </param> <param name=gomb value=hello> </applet> © Kozsik Tamás 2000-2006

Csak az init() metódusban hívható! 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 2000-2006

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 = "<üres>"; add(new Label(s)); } © Kozsik Tamás 2000-2006

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 2000-2006

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 2000-2006

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 2000-2006

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

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 2000-2006

É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 2000-2006

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

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 2000-2006

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 2000-2006

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

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 2000-2006

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 2000-2006

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 2000-2006

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 2000-2006

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 © Kozsik Tamás 2000-2006