Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom...
-
Upload
lothar-helwig -
Category
Documents
-
view
113 -
download
1
Transcript of Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom...
Java Beans
von
Raoul Schneider
Java Beans
• Was ist ein Bean?
• Idee
• Eigenschaften
• Die Beanbox
• Vom Java-Programm zum Java-Bean
• Beans in JBuilder
Was ist ein Bean?
Ein Bean ist eine eigenständige, wiederverwendbare Softwarekomponente mit folgenden Eigenschaften:
• besitzen Üblicherweise eine sichtbare Oberfläche
• können mit Hilfe eines GUI-Editors (z.B. JBuilder) interaktiv zu komplexen Anwendungen zusammengesetzt werden
• schizophrenes Laufzeitverhalten: Designzeitpunkt und Ausführungszeitpunkt
Idee der Beans
• Wiederverwendbarkeit
• Plattformunabhängigkeit
• Einfache Herstellung graphischer Oberflächen (mit GUI-Beans)
• Softwarekomponenten als eigenständiges Produkt
Eigenschaften
• Bean ist ein Objekt • hat einen parameterlosen Konstruktor• Zugriff auf Eigenschaften nur über „setter“ und
„getter“• Serialisierbar. Einbindung in IDE• Zum Designzeitpunkt vorgenommene
Einstellungen können gespeichert und zum Ausführungszeitpunkt rekonstruiert werden
• Kommunikation mit anderen Beans nur über Events
Die Beanbox
Testumgebung für Beans
Beans und die Beanbox
Ein Beispiel
FloatVollKreis als Bean
FloatVollKreis?
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.text.*;import java.lang.*;import java.io.Serializable;
public class FloatVollPanel extends Panel implements FloatListener, 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.text.*;import java.lang.*;import java.io.Serializable;
public class FloatVollPanel extends Panel implements FloatListener, Serializable{
FloatVollPanel(){...
}
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 minValue;private int maxValue;private double initValue;private double steigung;
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 setMinValue(int minVal){ minValue = minVal;}public int getMinValue(){ return minValue; }
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“
import java.beans.*;public class FloatVollPanelBeanInfo extends SimpleBeanInfo {
public java.awt.Image getIcon(int iconKind) { if (iconKind == BeanInfo.ICON_COLOR_16x16) { java.awt.Image img = loadImage("watch16.gif"); return img; } if (iconKind == BeanInfo.ICON_COLOR_32x32) { java.awt.Image img = loadImage("watch32.gif"); return img; } return null;
}
}
FloatVollPanelBeanInfo.java
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: FloatBeans/FloatVollPanel.classJava-Bean: True
Leerzeile istwichtig!!!
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 *.*
Die Beanbox II
FloatVollPanel in der Beanbox
Die Beanbox
Die Beanbox II
Beans im JBuilder
•Einbinden
•Benutzen
Wir machen ein Bean I
• import java.io.Serializable
• implements Serializable
Wir machen ein Bean II
• Properties (eigenschaften):
müssen als „private“ deklariert sein
• Zugriff per „setter“ und „getter“:
methoden beginnen mit „get“ oder „set“ gefolgt vom Namen des Property, und dem ersten Buchstaben gross
Wir machen ein Bean III
• ...und schon sind wir fast am Ende
• kompilieren des *.java Files
• erstellen des manifest.tmp Files in einem Texteditor:
Name: *.class
Java-Bean: True
Wir machen ein Bean IV
• Jar-file erzeugen:
jar cfm {name}.jar manifest.tmp *.class
Und fertig sind wir!