JavaBeans ó Nagyon divatos technologia ó Nem te vesztend˝ ¨ssze az Enterprise Java Beans technologia val ó Programoza si konvenciok gyu jteme nye ó Komponens-elvu programoza s ó Vizua lis fejleszt˝ eszk¨z segıtse ge vel
Java tutorial Copyright á 2000-2002, Kozsik Tama s
Komponens-elvu programoza s
Off-the-shelf
ó A programot komponensekb˝ l a llıtom ¨ssze ó Egy komponens egy ¨na lloegyse g, jol meghata rozott interfe sszel
ó Vannak ”a ruha zakÖ, ahol komponenseket vehetek ó Csak ¨ssze kell kapcsolni ˝ ket, e s ke sz is van az alkalmaza s ó A programoza s me rn¨ki, vagy pla ne szerel˝ i munka va va lik ó Olcson megbızhatoterme ket a llıtunk el˝
„ olyasmi, mint az objektum, csak nagyobb is lehet
ó Lehet˝ leg el˝ regya rtott komponensekb˝ l e pıtkezem
O sszeszerele s ó A beszerzett komponenseket be kell konfigura lni (testreszaba s, customization) ó A szabva nyok garanta lja k, hogy „ a komponenseket ¨ssze lehet rakni „ ba rmikor ki lehet csere lni egy ma sik, hasonlo funkcionalita st nyüjtoval
ó A szerele s ta mogathatovizua lis fejleszt˝ eszk¨zzel
Megolda s 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 PDF created with FinePrint pdfFactory trial version http://www.fineprint.com
BeanBox ó A Sun ke szıtett egy ingyen let¨lthet˝ beanfejleszt˝ k¨rnyezetet ó Csak ja te kra / demonstra ciora jo „ Az elveket ki lehet proba lni rajta „ Bonyolultabb dolgokat nem lehet vele csina lni „ Sok olyan dolog, ami szÍkse ges egy program elke szıte se hez, nincs benne „ A professziona lis 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, dokumenta ciok, pe ldaprogramok ó A BDK mellett ma s, kapcsolodotechnologia k: „ JavaBeans Tools for ActiveX „ InfoBus „ JavaBeans Activation Framework (JAF)
Ja te 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ıta s ó Feladat: Vızmolekula forgata sa
Java tutorial Copyright á 2000-2002, Kozsik Tama s
A BeanBox futtata sa ó beans/beanbox/run.sh ó beans\beanbox\run.bat ó Toolbox, Beanbox, Properties, Method Tracer
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 futa si id˝ ben megismerkedik velÍk, e s segıtse ge vel manipula lhatjuk ˝ ket ó Egy id˝ ben fut a BeanBox e s a vele tervezett e s ¨sszea llıtott alkalmaza s
2 PDF created with FinePrint pdfFactory trial version http://www.fineprint.com
O nelemze s (reflection) ó Egy Java program informa ciot gyu jthet saja t maga rol, vagy ma s Java programrol - futa s k¨zben ó A tıpusdefinıciokat leıroclass fa jlok sok informa ciot tartalmaznak ó Egy Java program megvizsga lhatja a virtua lis ge p a ltal bet¨lt¨tt ba jtkodot ó S˝ t, a bels˝ reprezenta cioja hoz hozza fe rve nem csak elemezheti, de aka r aktiva lhatja is
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 $
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); } }
JavaBeans konvenciok ó Az ¨nelemze s segıtse ge vel egy bean fejleszt˝ eszk¨z ke pes felderıteni e s aktiva lni metodusokat ó S˝ t, tudja ˝ ket specia lisan is kezelni, ha k¨vetjÍk az elneveze si konvenciokat „ tulajdonsa gok testreszaba sa „ eseme nykezele s
Tulajdonsa gok Java tutorial Copyright á 2000-2002, Kozsik Tama s
ó Tulajdonsa g: amit be lehet a llıtani (set) e s le lehet ke rdezni (get) ó Pe lda ul egy bean-nek lesz egy ”me retÖ nevu ”intÖ tıpusü tulajdonsa ga, ha definia lunk 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 PDF created with FinePrint pdfFactory trial version http://www.fineprint.com
Testreszaba s ó Tetsz˝ leges bean tulajdonsa gaihoz a BeanBox futa s k¨zben elke szıtheti a tulajdonsa gszerkeszt˝ dialogust (Properties) a futa si ideju informa ciok alapja n ó Lehet˝ se g van saja t tulajdonsa gszerkeszt˝ k elke szıte se re, e s a tulajdonsa gszerkeszt˝ dialogusban t¨rte n˝ megjelenıte se re (PropertyEditor) ó S˝ t, aka r saja t tulajdonsa gszerkeszt˝ dialogus definia la sa ra is (Customizer, BeanInfo)
Feladat ó Irjunk olyan JavaBean-t, melynek grafikus felÍlete egy piros pontot tartalmaz. A pont me rete legyen a bean tulajdonsa ga.
Perzisztencia, vizua lis megjelene s ó A JavaBean-ek ke t fontos tulajdonsa ga:
Java tutorial Copyright á 2000-2002, Kozsik Tama s
„ el lehessen ta rolni ˝ ket (e s a bel˝ lÍk ¨sszea llıtott programot) „ lehessen vizua lis eszk¨zzel manipula lni ˝ ket
ó A BeanBox a Java szerializa ciot haszna lja „ megk¨veteli, hogy a JavaBean-ek megvalosıtsa k a Serializable interfe szt
ó A ltala ban a java.awt.Component-b˝ l sza rmaztatjuk le a bean-einket...
JAR fa jlok ó Az elke szıtett JavaBean-eket JAR fa jlokban szoka s ta rolni. ó Ez a class fa jl(ok)on kıvÍl tartalmazza a szÍkse ges er˝ forra sokat, e s egy manifest.tmp fa jlt. ó manifest.tmp: Name: Pirospont.class Java-Bean: True jar cfm Pirospont.jar manifest.tmp Pirospont.class
ó A JAR fa jl bet¨lthet˝ egy futoBeanBox-ba, vagy, ha bema soljuk a beans/jars k¨nyvta rba, automatikusan bet¨lt˝ dik indula skor
Eseme nykezele s ó Forra s - eseme ny - figyel˝ ó Bee pıtett eseme nyek: „ tulajdonsa g va ltoza sa: k¨t¨tt (bound) tulajdonsa g, PropertyChangeEvent „ tulajdonsa g va ltoza sa nak megkıse rle se ve tozhato(vetoable) tulajdonsa g VetoableChangeListener, PropertyVetoException
4 PDF created with FinePrint pdfFactory trial version http://www.fineprint.com
Saja t eseme nyek esete n ó Definia ljuk az eseme ny oszta lyt: java.util.EventObject ó Definia ljuk a figyel˝ k interfe sze t: java.util.EventListener ó Megvalosıtjuk a forra st „ implementa ljuk a figyel˝ k regisztra cioja t „ ahol kell, kiva ltjuk az eseme nyt, e s e rtesıtjÍk a regisztra lt figyel˝ ket
ó Irhatunk specia lis figyel˝ oszta lyokat is, de (egy BeanBox a ltal genera lt adapter segıtse ge vel) ¨sszek¨thetjÍk a forra st ma s bean-nel is
Feladat ó Sza molobean: egy Label, melynek felirata egy sza m. A sza m n¨velhet˝ a Sza molo n¨vel() metodusa val. Amikor ele rjÍk a ”maxÖ e rte ket, a sza molo0-ra cs¨kken, e s MaxEvent va ltodik ki. A max e rte ke egy tulajdonsa g. Alarm bean: egy nyomogomb, mely figyeli a MaxEvent-et, e s piros szınre va lt, ha az bek¨vetkezik.
Java tutorial Copyright á 2000-2002, Kozsik Tama s
5 PDF created with FinePrint pdfFactory trial version http://www.fineprint.com