Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom...

46
Java Beans von Raoul Schneider

Transcript of Java Beans von Raoul Schneider. Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom...

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.