Java Beans von Christian Beck

Werbung
Java Beans
von
Christian Beck-Wörner
Inhalt
•Was ist ein Bean
•Konzept von Beans
•Entwicklung eines Beans
•Eigenschaften von Beans
•Testumgebung: BDK
Was ist ein Bean?
Ein JavaBean ist eine wiederverwendbare
Softwarekomponente, die man visuell in einem
„builder tool“ manipulieren kann.
•Beans sind Softwarekomponenten
•Beans sind normale Klassen
•Beans können visuell in einem „Tool“ verändert
werden
•Beans haben ein schizophrenes Laufzeitverhalten:
Designzeitpunkt vs. Ausführungszeitpunkt
Konstruktion und Verwendung von Beans
Kreiert und unterhält die
Beans
Sucht geeignete
Komponenten
Anwendungsentwickler
„Jbean-Entwickler“
Verwendet die
Komponenten
Die typischen Eigenschaften von
Beans
•
•
•
•
•
•
Introspektion (Selbstbeobachtung)
Customization (Anpassung)
Events (Ereignisse)
Properties (Eigenschaften)
Persistenz
Packaging
Introspektion
„Builder Tools“ analysieren Beans
Zum Beispiel:
• Sun BDK
• IBM Visual Age
• Borland Jbuilder
• Microsoft Visual J++ 6.0
Customization
Ein Benutzer soll z.B. mit BDK das
Erscheinungsbild und das Verhalten eines
Beans anpassen können
Für simple Beans
•Tool konstruiert ein GUI
property sheet
•Listet die Eigenschaften
auf
•Bearbeitung mit Property
Editor
Für komplexere Beans
•Wizards, führen den
User durch die
Customization
•Separate Klasse
Customization
Events
• Beans kommunizieren über Events
• 3 Hauptbestandteile: Source, Event, Listener
Register listener
Event source
Event
Event listener
Properties
• Zugriff immer über Objekteigene Methoden
• Um Eigenschaften zu lesen: getter
Methoden
public <PropertyType> get<PropertyName>;
• Um Eigenschaften zu setzten: setter
Methoden
public void
set<PropertyName>(<PropertyType> a);
Persistenz
• Ein Bean soll nachdem es verändert wurde
seine Anpassungen speichern und später
wieder laden können.
• Alle Beans müssen Serialization
unterstützen
Design time v. run-time
Designzeitpunkt
• Design time Code umfangreicher
Ausführungszeitpunkt
• Verwendbarkeit in der erstellten
Applikation
Bean Development Kit BDK
Enthält:
• BeanBox Testumgebung
• Bean-Beispiele
• Quellcodeausschnitte
BeanBox
Hier werden die Beans aus der
ToolBox platziert.
ToolBox
Zeigt die Palette der Beans, die
der BeanBox zur Verfügung
stehen
Property Fenster
Zeigt die Eigenschaften
eines Beans, das gerade in
der BeanBox ausgewählt ist
und die verändert werden
können
Vom Java-Programm zum Bean I
• 1. Schritt: serialisierbar machen
• 2. Schritt: Leeren Konstruktor erstellen
• 3. Schritt: Veränderbare Eigenschaften
(properties) als „private“ deklarieren
• 4. Schritt: „setter-“ und „getter-“ Methoden
erstellen
• 5. Schritt: Kosmetik
• 6. Schritt: Das „manifest.tmp“
• 7. Schritt: Jar-File erzeugen
Vom Java-Programm zum Bean I
import java.awt.*;
import java.awt.event.*;
import java.io.Serializable;
public class Grafik extends Canvas implements
Serializable{
Vom Java-Programm zum Bean
II
• 1. Schritt: serialisierbar machen
• 2. Schritt: Leeren Konstruktor erstellen
• 3. Schritt: Veränderbare Eigenschaften
(properties) als „private“ deklarieren
• 4. Schritt: „setter-“ und „getter-“ Methoden
erstellen
• 5. Schritt: Kosmetik
• 6. Schritt: Das „manifest.tmp“
• 7. Schritt: Jar-File erzeugen
Vom Java-Programm zum Bean
II
import java.awt.*;
import java.awt.event.*;
import java.io.Serializable;
public class Grafik extends Canvas implements
Serializable{
public Grafik(){
setSize(300,300);
setVisible(true);
}
Vom Java-Programm zum Bean
III
• 1. Schritt: serialisierbar machen
• 2. Schritt: Leeren Konstruktor erstellen
• 3. Schritt: Veränderbare Eigenschaften
(properties) als „private“ deklarieren
• 4. Schritt: „setter-“ und „getter-“ Methoden
erstellen
• 5. Schritt: Kosmetik
• 6. Schritt: Das „manifest.tmp“
• 7. Schritt: Jar-File erzeugen
Vom Java-Programm zum Bean
III
private int x=200;
Vom Java-Programm zum Bean
IV
• 1. Schritt: serialisierbar machen
• 2. Schritt: Leeren Konstruktor erstellen
• 3. Schritt: Veränderbare Eigenschaften
(properties) als „private“ deklarieren
• 4. Schritt: „setter-“ und „getter-“ Methoden
erstellen
• 5. Schritt: Kosmetik
• 6. Schritt: Das „manifest.tmp“
• 7. Schritt: Jar-File erzeugen
Vom Java-Programm zum Bean
IV
Zugriff auf die als „private“ deklarierten
Variablen mittels „set“- und „get“Methoden:
Namenkonvention
Vom Java-Programm zum Bean
IV
public void setX(int a){
x=a;
}
public int getX(){
return x;
}
Vom Java-Programm zum Bean
V
• 1. Schritt: serialisierbar machen
• 2. Schritt: Leeren Konstruktor erstellen
• 3. Schritt: Veränderbare Eigenschaften
(properties) als „private“ deklarieren
• 4. Schritt: „setter-“ und „getter-“ Methoden
erstellen
• 5. Schritt: Kosmetik
• 6. Schritt: Das „manifest.tmp“
• 7. Schritt: Jar-File erzeugen
Vom Java-Programm zum Bean
V
=> „*BeanInfo.class“
Fügt ein Ikon zum Namen
hinzu
GrafikBeanInfo.java
import java.beans.*;
public class GrafikBeanInfo extends SimpleBeanInfo {
public java.awt.Image getIcon(int iconKind) {
if (iconKind == BeanInfo.ICON_COLOR_16x16) {
java.awt.Image img = loadImage("Kreis16.gif");
return img;
}
if (iconKind == BeanInfo.ICON_COLOR_32x32) {
java.awt.Image img = loadImage("Kreis32.gif");
return img;
}
return null;
}
}
Vom Java-Programm zum Bean
VI
• 1. Schritt: serialisierbar machen
• 2. Schritt: Leeren Konstruktor erstellen
• 3. Schritt: Veränderbare Eigenschaften
(properties) als „private“ deklarieren
• 4. Schritt: „setter-“ und „getter-“ Methoden
erstellen
• 5. Schritt: Kosmetik
• 6. Schritt: Das „manifest.tmp“
• 7. Schritt: Jar-File erzeugen
Das „manifest.tmp“
Name: Grafik.class
Java-Bean: True
Vom Java-Programm zum Bean
VII
• 1. Schritt: serialisierbar machen
• 2. Schritt: Leeren Konstruktor erstellen
• 3. Schritt: Veränderbare Eigenschaften
(properties) als „private“ deklarieren
• 4. Schritt: „setter-“ und „getter-“ Methoden
erstellen
• 5. Schritt: Kosmetik
• 6. Schritt: Das „manifest.tmp“
• 7. Schritt: Jar-File erzeugen
Vom Java-Programm zum Bean
VII
Jar-File erzeugen:
C:\java > jar cfm {name}.jar manifest.tmp *.*
Quellenangaben
• http://www.javabuch.de
• http://www-106.ibm.com/developerworks/java/
• http://java.sun.com/docs/books/tutorial/javabeans/i
ndex.html
• http://java.sun.com/products/javabeans/
• JavaBean API Spezifikation
• Core Java 2 Volume 2: Fourth Edition (C.
Horstmann; G. Cornell)
Herunterladen