46
Java Beans von Raoul Schneider

Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Embed Size (px)

Citation preview

Page 1: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Java Beans

von

Raoul Schneider

Page 2: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Java Beans

• Was ist ein Bean?

• Idee

• Eigenschaften

• Die Beanbox

• Vom Java-Programm zum Java-Bean

• Beans in JBuilder

Page 3: 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

Page 4: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Idee der Beans

• Wiederverwendbarkeit

• Plattformunabhängigkeit

• Einfache Herstellung graphischer Oberflächen (mit GUI-Beans)

• Softwarekomponenten als eigenständiges Produkt

Page 5: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

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

Page 6: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Die Beanbox

Testumgebung für Beans

Page 7: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Beans und die Beanbox

Page 8: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Ein Beispiel

FloatVollKreis als Bean

Page 9: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

FloatVollKreis?

Page 10: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

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

Page 11: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

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{

Page 12: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

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

Page 13: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

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(){...

}

Page 14: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

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

Page 15: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Vom Java-Programm zum Bean III

private int minValue;private int maxValue;private double initValue;private double steigung;

Page 16: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

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

Page 17: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Vom Java-Programm zum Bean IV

Zugriff auf die als „private“ deklarierten Variablen mittels „set“- und „get“-Methoden:

Namenkonvention

Page 18: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Vom Java-Programm zum Bean IV

public void setMinValue(int minVal){ minValue = minVal;}public int getMinValue(){ return minValue; }

Page 19: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

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

Page 20: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Vom Java-Programm zum Bean V

=> „*BeanInfo.class“

Page 21: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

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

Page 22: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

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

Page 23: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Das „manifest.tmp“

Name: FloatBeans/FloatVollPanel.classJava-Bean: True

Leerzeile istwichtig!!!

Page 24: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

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

Page 25: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Vom Java-Programm zum Bean VII

Jar-File erzeugen:

C:\java > jar cfm {name}.jar manifest.tmp *.*

Page 26: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Die Beanbox II

FloatVollPanel in der Beanbox

Page 27: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Die Beanbox

Page 28: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Die Beanbox II

Page 29: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Beans im JBuilder

•Einbinden

•Benutzen

Page 30: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder
Page 31: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder
Page 32: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder
Page 33: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder
Page 34: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder
Page 35: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder
Page 36: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder
Page 37: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder
Page 38: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder
Page 39: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder
Page 40: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder
Page 41: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Wir machen ein Bean I

• import java.io.Serializable

• implements Serializable

Page 42: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

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

Page 43: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

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

Page 44: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder

Wir machen ein Bean IV

• Jar-file erzeugen:

jar cfm {name}.jar manifest.tmp *.class

Und fertig sind wir!

Page 45: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder
Page 46: Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder