© Kozsik Tamás 2000-2006 JavaBeans Nagyon divatos technológia Nem tévesztendő össze az Enterprise Java Beans technológiával Programozási konvenciók gyűjteménye.

Slides:



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

Osztály leszármaztatás
II. Grafikus felhasználói interfész
Programozás III STRING-XML.
© 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.
Jt Java Feltételek, logikai kifejezések. jt 2 Logikai operátorok Logikai kifejezésekre alkalmazhatók a következő műveletek: 1. nem! 2. és&ill.&& 3. kizáró.
Programozás III KOLLEKCIÓK 2..
Adminisztratív kérdések
Java Technológia Standard Edition
A Java programozási nyelv
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 Be- és kimenet kezelése.
Bevezetés a Java programozásba
Bevezetés a Java programozásba
Öröklődés Polimorfizmus Csomagok Absztrakt osztályok, interfészek
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.
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 12. 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/12 C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
Java programozási nyelv 5. rész – Osztályok III.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
C# tagfüggvények.
C# tagfüggvények.
SPRING FRAMEWORK bemutatása
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.
III. Java környezet 9. A Java nyelvről 10. Java programfejlesztés, JDK.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
1 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:
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
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.
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.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Java programozási nyelv Filekezelés
Komoróczy Tamás 1 Java programozási nyelv Stringek.
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
Java programozási nyelv Adatbekérés konzolról
Programozás III KIVÉTEL – CSOMAG. CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban.
Programozás III CSOMAG. CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van.
Webes MES keretrendszer fejlesztése Kiss Miklós Dániel G-5S8 Tervezésvezető: Dr. Hornyák Olivér.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Grafikus programozás Készítette: Csernok László
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Haladó Programozás Reflexió OE-NIK HP.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 6. gyakorlat.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Windows Forms alkalmazás készítése Czigléczky Gábor 2009.
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.
„Designer-barát” játéklogika
Neumann János Informatikai Kar
Web programozás és haladó fejlesztési technikák – C#
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Előadás másolata:

© 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 Komponens-elvű programozás Vizuális fejlesztőeszköz segítségével

© Kozsik Tamás Komponens-elvű programozás A programot komponensekből állítom össze Egy komponens egy önálló egység, jól meghatározott interfésszel –olyasmi, mint az objektum, csak nagyobb is lehet Lehetőleg előregyártott komponensekből építkezem

© Kozsik Tamás Off-the-shelf Vannak „áruházak”, ahol komponenseket vehetek Csak össze kell kapcsolni őket, és kész is van az alkalmazás A programozás mérnöki, vagy pláne szerelői munkává válik Olcsón megbízható terméket állítunk elő

© Kozsik Tamás Összeszerelés A beszerzett komponenseket be kell konfigurálni (testreszabás, customization) A szabványok garantálják, hogy –a komponenseket össze lehet rakni –bármikor ki lehet cserélni egy másik, hasonló funkcionalitást nyújtóval A szerelés támogatható vizuális fejlesztő eszközzel

© Kozsik Tamás Megoldás Java módra JavaBean - komponens Egy JavaBean attól JavaBean, hogy elkészítésekor bizonyos konvenciókat követünk java.beans csomag –Önelemzést (reflection) használ: java.lang.reflect Eseménykezelés (mint AWT-ben láttuk) Perzisztencia Vizuális megjelenés BeanBox környezet

© Kozsik Tamás BeanBox A Sun készített egy ingyen letölthető bean- fejlesztő környezetet Csak játékra / demonstrációra jó –Az elveket ki lehet próbálni rajta –Bonyolultabb dolgokat nem lehet vele csinálni –Sok olyan dolog, ami szükséges egy program elkészítéséhez, nincs benne –A professzionális eszközök működési elve is ugyanaz

© Kozsik Tamás Bean Development Kit BDK Benne van a BeanBox, dokumentációk, példaprogramok A BDK mellett más, kapcsolódó technológiák: –JavaBeans Tools for ActiveX –InfoBus –JavaBeans Activation Framework (JAF)

© Kozsik Tamás A BeanBox futtatása beans/beanbox/run.sh beans\beanbox\run.bat Toolbox, Beanbox, Properties, Method Tracer

© Kozsik Tamás Játék Bean-ek elhelyezése a BeanBox-ban Tulajdonságok módosítása Bean-ek összekapcsolása –Juggler vezérlése nyomógombokkal Mentés és visszatöltés Applet-té alakítás Feladat: Vízmolekula forgatása

© Kozsik Tamás Mi történik? A BeanBox segítségével testreszabhatunk, összekapcsolhatunk olyan bean-eket, amelyek nem is léteztek még a BeanBox megírásakor A BeanBox futási időben megismerkedik velük, és segítségével manipulálhatjuk őket Egy időben fut a BeanBox és a vele tervezett és összeállított alkalmazás

© Kozsik Tamás Önelemzés (reflection) Egy Java program információt gyűjthet saját magáról, vagy más Java programról - futás közben A típusdefiníciókat leíró class fájlok sok információt tartalmaznak Egy Java program megvizsgálhatja a virtuális gép által betöltött bájtkódot Sőt, a belső reprezentációjához hozzáférve nem csak elemezheti, de akár aktiválhatja is

© Kozsik Tamás import java.lang.reflect.*; class Meghiv { public static void main(String[] args) throws Exception { Class c = Class.forName(args[0]); Class[] formalArgs = (args.length > 2) ? new Class[] {String.class} : new Class[] {}; Object o = c.newInstance(); Method m = c.getMethod(args[1],formalArgs); Object[] actualArgs = (args.length > 2) ? new Object[] {args[2]} : new Object[] {}; m.invoke(o,actualArgs); }

© Kozsik Tamás public class Alma { public void kiir() { System.out.println( "alma "+this ); } public void kiir(String s) { System.out.println( "alma "+s+" "+this ); } public void print() { System.out.println( "apple "+this ); } $ java Meghiv Alma kiir szia alma szia $

© Kozsik Tamás JavaBeans konvenciók Az önelemzés segítségével egy bean fejlesztőeszköz képes felderíteni és aktiválni metódusokat Sőt, tudja őket speciálisan is kezelni, ha követjük az elnevezési konvenciókat –tulajdonságok testreszabása –eseménykezelés

© Kozsik Tamás Tulajdonságok Tulajdonság: amit be lehet állítani (set) és le lehet kérdezni (get) Például egy bean-nek lesz egy „méret” nevű „int” típusú tulajdonsága, ha definiálunk benne ilyen metódusokat: public void setMéret( int méret ) public int getMéret() Vannak még egyéb konvenciók is, pl. tömbök esetén...

© Kozsik Tamás Testreszabás Tetszőleges bean tulajdonságaihoz a BeanBox futás közben elkészítheti a tulajdonságszerkesztő dialógust (Properties) a futási idejű információk alapján Lehetőség van saját tulajdonságszerkesztők elkészítésére, és a tulajdonságszerkesztő dialógusban történő megjelenítésére (PropertyEditor) Sőt, akár saját tulajdonságszerkesztő dialógus definiálására is (Customizer, BeanInfo)

© Kozsik Tamás Feladat Írjunk olyan JavaBean-t, melynek grafikus felülete egy piros pontot tartalmaz. A pont mérete legyen a bean tulajdonsága.

© Kozsik Tamás Perzisztencia, vizuális megjelenés A JavaBean-ek két fontos tulajdonsága: –el lehessen tárolni őket (és a belőlük összeállított programot) –lehessen vizuális eszközzel manipulálni őket A BeanBox a Java szerializációt használja –megköveteli, hogy a JavaBean-ek megvalósítsák a Serializable interfészt Általában a java.awt.Component-ből származtatjuk le a bean-einket...

© Kozsik Tamás JAR fájlok Az elkészített JavaBean-eket JAR fájlokban szokás tárolni. Ez a class fájl(ok)on kívül tartalmazza a szükséges erőforrásokat, és egy manifest.tmp fájlt. manifest.tmp: Name: Pirospont.class Java-Bean: True jar cfm Pirospont.jar manifest.tmp Pirospont.class A JAR fájl betölthető egy futó BeanBox-ba, vagy, ha bemásoljuk a beans/jars könyvtárba, automatikusan betöltődik induláskor

© Kozsik Tamás Eseménykezelés Forrás - esemény - figyelő Beépített események: –tulajdonság változása: kötött (bound) tulajdonság, PropertyChangeEvent –tulajdonság változásának megkísérlése vétózható (vetoable) tulajdonság VetoableChangeListener, PropertyVetoException

© Kozsik Tamás Saját események esetén Definiáljuk az esemény osztályt: java.util.EventObject Definiáljuk a figyelők interfészét: java.util.EventListener Megvalósítjuk a forrást –implementáljuk a figyelők regisztrációját –ahol kell, kiváltjuk az eseményt, és értesítjük a regisztrált figyelőket Írhatunk speciális figyelő osztályokat is, de (egy BeanBox által generált adapter segítségével) összeköthetjük a forrást más bean-nel is…

© Kozsik Tamás Feladat Számoló bean: egy Label, melynek felirata egy szám. A szám növelhető a Számoló növel() metódusával. Amikor elérjük a „max” értéket, a számoló 0-ra csökken, és MaxEvent váltódik ki. A max értéke egy tulajdonság. Alarm bean: egy nyomógomb, mely figyeli a MaxEvent-et, és piros színre vált, ha az bekövetkezik.