JavaBeans ó Nagyon divatos technologia ó Nem te vesztend ssze az Enterprise Java Beans technologia val ó Programozasi konvenciok gyu jteme nye ó Komponens-elvu programoza s ó Vizua lis fejleszt eszk z segıtse ge vel Komponens-elvu programoza s ó A programot komponensekb l allıtom ssze ó Egy komponens egy na lloegyse g, jol meghata rozott interfe sszel olyasmi, mint az objektum, csak nagyobb is lehet ó Lehet leg el regya rtott komponensekb l e pıtkezem Off-the-shelf ó Vannak a ruhazakö, ahol komponenseket vehetek ó Csak ssze kell kapcsolni ket, e s ke sz is van az alkalmazas ó A programozas me rn ki, vagy plane szerel i munkava valik ó Olcson megbızhatoterme ket allıtunk el O sszeszerele s ó A beszerzett komponenseket be kell konfiguralni (testreszabas, customization) ó A szabvanyok garantaljak, hogy a komponenseket ssze lehet rakni barmikor ki lehet csere lni egy masik, hasonlo funkcionalitast nyüjtoval ó A szerele s ta mogathatovizua lis fejleszt eszk zzel Megoldas Java modra ó JavaBean - komponens ó Egy JavaBean attol JavaBean, hogy elke szıte sekor bizonyos konvenciokat k vetínk ó java.beans csomag O nelemze st (reflection) haszna l: java.lang.reflect ó Eseme nykezele s (mint AWT-ben la ttuk) ó Perzisztencia ó Vizua lis megjelene s ó BeanBox k rnyezet 1
BeanBox ó A Sun ke szıtett egy ingyen let lthet beanfejleszt k rnyezetet ó Csak jate kra / demonstraciora jo Az elveket ki lehet probalni rajta Bonyolultabb dolgokat nem lehet vele csinalni Sok olyan dolog, ami szíkse ges egy program elke szıte se hez, nincs benne A professzionalis eszk z k mu k de si elve is ugyanaz Bean Development Kit ó BDK 1.1-1999 ó http://java.sun.com/javabeans/ ó Benne van a BeanBox, dokumentaciok, pe ldaprogramok ó A BDK mellett mas, kapcsolodotechnologiak: JavaBeans Tools for ActiveX InfoBus JavaBeans Activation Framework (JAF) A BeanBox futtatasa ó beans/beanbox/run.sh ó beans\beanbox\run.bat ó Toolbox, Beanbox, Properties, Method Tracer Jate k ó Bean-ek elhelyeze se a BeanBox-ban ó Tulajdonsa gok modosıta sa ó Bean-ek sszekapcsola sa Juggler veze rle se nyomogombokkal ó Mente s e s visszat lte s ó Applet-te alakıtas ó Feladat: Vızmolekula forgatasa Mi t rte nik? ó A BeanBox segıtse ge vel testreszabhatunk, sszekapcsolhatunk olyan bean-eket, amelyek nem is le teztek me g a BeanBox megıra sakor ó A BeanBox futasi id ben megismerkedik velík, e s segıtse ge vel manipulalhatjuk ket ó Egy id ben fut a BeanBox e s a vele tervezett e s sszeallıtott alkalmazas 2
O nelemze s (reflection) ó Egy Java program informaciot gyu jthet sajat magarol, vagy mas Java programrol - futas k zben ó A tıpusdefinıciokat leıroclass fajlok sok informaciot tartalmaznak ó Egy Java program megvizsgalhatja a virtualis ge p altal bet lt tt bajtkodot ó S t, a bels reprezenta ciojahoz hozza fe rve nem csak elemezheti, de akar aktivalhatja is 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); 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 Alma@fee6fc $ JavaBeans konvenciok ó Az nelemze s segıtse ge vel egy bean fejleszt eszk z ke pes felderıteni e s aktivalni metodusokat ó S t, tudja ket specialisan is kezelni, ha k vetjík az elneveze si konvenciokat tulajdonsa gok testreszaba sa eseme nykezele s Tulajdonsa gok ó Tulajdonsag: amit be lehet allıtani (set) e s le lehet ke rdezni (get) ó Pe ldaul egy bean-nek lesz egy me retö nevu intö tıpusü tulajdonsaga, ha definialunk benne ilyen metodusokat: public void setmeret( int meret ) public int getmeret() ó Vannak me g egye b konvenciok is, pl. t mb k esete n... 3
Testreszaba s ó Tetsz leges bean tulajdonsagaihoz a BeanBox futas k zben elke szıtheti a tulajdonsa gszerkeszt dialogust (Properties) a futa si ideju informa ciok alapja n ó Lehet se g van saja t tulajdonsagszerkeszt k elke szıte se re, e s a tulajdonsagszerkeszt dialogusban t rte n megjelenıte se re (PropertyEditor) ó S t, aka r sajat tulajdonsa gszerkeszt dialogus definialasara is (Customizer, BeanInfo) Feladat ó Irjunk olyan JavaBean-t, melynek grafikus felílete egy piros pontot tartalmaz. A pont me rete legyen a bean tulajdonsaga. Perzisztencia, vizualis megjelene s ó A JavaBean-ek ke t fontos tulajdonsaga: el lehessen tarolni ket (e s a bel lík sszeallıtott programot) lehessen vizualis eszk zzel manipulalni ket ó A BeanBox a Java szerializaciot hasznalja megk veteli, hogy a JavaBean-ek megvalosıtsak a Serializable interfe szt ó A ltala ban a java.awt.component-b l szarmaztatjuk le a bean-einket... JAR fajlok ó Az elke szıtett JavaBean-eket JAR fajlokban szokas tarolni. ó Ez a class fajl(ok)on kıvíl tartalmazza a szíkse ges er forrasokat, e s egy manifest.tmp fajlt. ó manifest.tmp: Name: Pirospont.class Java-Bean: True jar cfm Pirospont.jar manifest.tmp Pirospont.class ó A JAR fajl bet lthet egy futobeanbox-ba, vagy, ha bemasoljuk a beans/jars k nyvtarba, automatikusan bet lt dik indulaskor Eseme nykezele s ó Forras - eseme ny - figyel ó Bee pıtett eseme nyek: tulajdonsa g valtozasa: k t tt (bound) tulajdonsag, PropertyChangeEvent tulajdonsag valtozasanak megkıse rle se ve tozhato(vetoable) tulajdonsag VetoableChangeListener, PropertyVetoException 4
Sajat eseme nyek esete n ó Definia ljuk az eseme ny oszta lyt: java.util.eventobject ó Definialjuk a figyel k interfe sze t: java.util.eventlistener ó Megvalosıtjuk a forrast implementaljuk a figyel k regisztracioja t ahol kell, kivaltjuk az eseme nyt, e s e rtesıtjík a regisztralt figyel ket ó Irhatunk specialis figyel osztalyokat is, de (egy BeanBox a ltal genera lt adapter segıtse ge vel) sszek thetjík a forrast mas bean-nel is Feladat ó Szamolobean: egy Label, melynek felirata egy szam. A szam n velhet a Szamolo n vel() metodusaval. Amikor ele rjík a maxö e rte ket, a szamolo0-ra cs kken, e s MaxEvent valtodik ki. A max e rte ke egy tulajdonsa g. Alarm bean: egy nyomogomb, mely figyeli a MaxEvent-et, e s piros szınre valt, ha az bek vetkezik. 5