Freie Scripten und Tutorials erstellt von Roland Geyer       Startseite | Gästebuch

Grundsätzlicher Aufbau

Sehen wir uns die Einhaltung der Vereinbarungen für eine Bean anhand eines Beispiels an:

Aufgabe der Bean:

Darstellung eines Kreises

In derAbbbildung sieht man die importierte Bean im Component Inspector von NetBeans (freeware), in der hieraxhischen Gliederung des GUI, als Icon in der Leiste unter dem Reiter Bean und angewendet auf der Bühne. Dadurch können die Eigenschaften der Bean im Eigenschaftsinspector eingestellt werden.

Nun zu den Vorbereitungen:

1. Alle Klassen schreiben und compilieren.

Test Klasse:

Dient zum testen der Funktionalität der Beanklasse. Wird im Bean nicht eingebunden.

public class Start {

  public static void main(String[] args) {
    Fenster f = new Fenster();
    f.pack();
    f.show();
  }
}

Beanklasse Kreis

Stellt alles zur Verfügung was vereinbart wäre um eine Bean verwenden zu können.

Da ich mich entscheide, das eine Eigenschaft einen Wert bezieht, der mit set/get Methoden erreicht wird, stellt jede einzelne Eigenschaft get/set Methoden bereit.

Es werden keine Vorkehrungen getroffen, damit sich das Bean seinen Zustand abspeichern kann und sozusagen merkt (serialisierbar)

Die Beanklasse ist eine Erweiterung der Klasse Component, einer Art root Klasse betreffend AWT und Swing. Sie kann dadurch in jeder grafischen Swing AWT Umgebung verwendet werden. Sie ist zu verwenden wenn die Beans JFrame, JPanel und ein Layoutmanager Bean vorhanden sind.

import java.awt.Component;
import java.awt.Graphics;
import java.awt.Dimension;

public class Kreis extends Component{
  private int entfernung_x;
  private int entfernung_y;
  private int durchmesser;

  public Kreis(){
  }

  public void setEntfernung_x(int x){
    this.entfernung_x = x;
    repaint();
  }

  public int getEntfernung_x(){
    return this.entfernung_x;
  }

  public void setEntfernung_y(int y){
    this.entfernung_y = y;
    repaint();
  }

  public int getEntfernung_y(){
    return this.entfernung_y;
  }

  public void setDurchmesser(int durchmesser){
    this.durchmesser = durchmesser;
    repaint();
  }

  public int getDurchmesser(){
    return this.durchmesser;
  }

  public void paint(Graphics g){
    g.fillOval(this.entfernung_x,this.entfernung_y,durchmesser,durchmesser);
  }

  //Achtung: unbedingt einbinden, sonst weiß die Componente nie,
	//wie groß sie auf der Bühne ist!!
  public Dimension getPreferredSize(){
    return new Dimension(this.entfernung_x+durchmesser,this.entfernung_y+durchmesser);
  }

}

BeanInfo Klasse:

Ohne der BeanInfoklasse funktionieren Beans in manchen GUI Entwicklungsumgebungen nicht. Sie enthält unter anderem auch die Vereinbarung, wie das Bean in der Leiste der importierten Beans auszusehen hat:

2. Die Icons werden erstellt:

Icon 32 Pixel color: Icon32c.gif, Hintergrund transparent

Icon 16 Bixel color: Icon16c.gif, Hintergrund transparent

import java.beans.SimpleBeanInfo;
import java.beans.BeanInfo;
import java.awt.Image;

public class KreisBeanInfo extends SimpleBeanInfo{

    public Image getIcon(int iconKind) {
        if (iconKind == BeanInfo.ICON_MONO_16x16 || iconKind == BeanInfo.ICON_COLOR_16x16 ) {
            Image img = loadImage("Icon16c.gif");
            return img;
        }

        if (iconKind == BeanInfo.ICON_MONO_32x32 || iconKind == BeanInfo.ICON_COLOR_32x32 ) {
            Image img = loadImage("Icon32c.gif");
            return img;
        }
        return null;
    }
}

Beans werden nur als JAR Files akzeptiert:

Ein JAR File für Beans beinhaltet immer eine Textdatei die angibt, welche Klasse die Bean ist. Und die Namen weiterer eingebundener Klassen. Diese Textdatei nennt man auch Manifest.

Somit lautet der Text:

Manifest-version: 1.0

Name: Kreis.class
Java-Bean: True

Name: KreisBeanInfo.class

3. Diese Textdatei wird als text.txt abgespeichert

4. Alles ins Archiv packen.

Name der Archivdatei: firstbean.jar

gewählte Optionen für jar:

v ... Bericht auf der Console ausgeben

c ... omprimieren

f ... ile speichern

m ... anifestdatei erstellen

Syntax: jar vcfm nameJarArchive.jar nameTextDateiAlsManifestVerwendet.txt allesAndere

Somit lautet in DOS der Befehl:

jar vcfm firstbean.jar text.txt Kreis.class KreisBeanInfo.class Icon32c.gif Icon16c.gif

5. Eine Software öffnen, die Beans einlesen kann!

(Bei demos meist nicht möglich!! auch wenn das manche Flaschen erzählen:-)

Bean importieren und verwenden.


Weitere freie Tutorials: Rhetorik & Kommunikation Typografie & Layout Bildbearbeitung mit Photoshop oder GIMP Vektorgrafik mit Illustrator, FreeHand, Corel Draw oder Inkscape Layout mit Indesign oder Scribus Druckvorstufe GoLive Html JavaScript Flash & ActionScript Director & Lingo Assembler DOS Java objektorientiert Perl Word Excel Access PowerPoint Outlook Betriebssystem