16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

3.6.2 Komponenten für <strong>Java</strong>: Beans<br />

<strong>Java</strong>Beans ist das Komponentenmo<strong>de</strong>ll von <strong>Java</strong>. Diese Komponenten haben e<strong>in</strong>e<br />

genauere und für Programmierwerkzeuge verständlichere Schnittstellen<strong>de</strong>f<strong>in</strong>tion als<br />

<strong>Java</strong>-Klassen. Die zur Beschreibung und Analyse benötigten Interfaces und Klassen<br />

stehen im Package java.beans. Sie arbeiten sehr eng mit <strong>de</strong>n Klassen zur<br />

Laufzeitanalyse von <strong>Java</strong>-Klassen im Paket java.lang.reflect zusammen. Die<br />

Schnittstellen von <strong>Java</strong>Beans bezeichnet man als Features. Sie besteht aus drei<br />

Teilen:<br />

<strong>Java</strong>Beans<br />

Properties Metho<strong>de</strong>n Ereignisse<br />

Abb.: Die <strong>Java</strong>Bean-Features<br />

1. Properties s<strong>in</strong>d die öffentlichen, mit Namen versehenen Attribute o<strong>de</strong>r Eigenschaften. Über diese<br />

Properties s<strong>in</strong>d Beans an die Vorstellungen <strong>de</strong>s Programmierers anpassbar, ohne daß er er <strong>de</strong>n<br />

Quellco<strong>de</strong> än<strong>de</strong>rn und darauf irgen<strong>de</strong><strong>in</strong> Zugriff haben muß. Die Implementierung von Properties<br />

erfolgt durch entsprechen<strong>de</strong> lesen<strong>de</strong> und schreiben<strong>de</strong> Metho<strong>de</strong>n, die e<strong>in</strong>er Namenskonvention<br />

(„Design-Pattern“ 232 ) gehorchen. Die <strong>Java</strong>-Beans-Architektur unterschei<strong>de</strong>t zwischen sog.<br />

In<strong>de</strong>xed, Bound und Constra<strong>in</strong>t Properties.<br />

2. Die öffentlichen Metho<strong>de</strong>n, die e<strong>in</strong>e Bean ausführen kann<br />

3. E<strong>in</strong> <strong>Java</strong>Bean erzeugt Ereignisse, z.B. dann, wenn sich ihre Properties än<strong>de</strong>rn.<br />

Diese drei Arten von Features s<strong>in</strong>d im Interface BeanInfo dokumentiert.<br />

Das Paket java.beans enthält folgen<strong>de</strong> Klassen, Schnittstellen und Ausnahmen:<br />

AppletInitalizer<br />

BeanInfo<br />

Customizer<br />

DesignMo<strong>de</strong><br />

PropertyChangeListener<br />

PropertyEditor<br />

VetoableChangeListener<br />

Visibility<br />

Metho<strong>de</strong>n für die Initialisierung von Beans, die auch Applets s<strong>in</strong>d<br />

Metho<strong>de</strong>n für die Beschreibung e<strong>in</strong>es Beans, z.B.<br />

getBeanDescriptor()<br />

Schnittstelle für Klassen, die <strong>de</strong>r Anpassung von Beans dienen<br />

(Bean-Editoren, Bean-Customizer)<br />

Metho<strong>de</strong>n, die feststellen, ob sich e<strong>in</strong> Bean <strong>in</strong> e<strong>in</strong>er Design- o<strong>de</strong>r<br />

Lauffzeitumgebung bef<strong>in</strong><strong>de</strong>t<br />

Lauscherschnittstelle, die Eigenschaftsän<strong>de</strong>rungsnachrichten<br />

abfängt<br />

Metho<strong>de</strong>n für Klassen, die das Editieren von Beans bzw. ihrer<br />

Eigenschaften erlauben.<br />

Lauscherschnittstelle für sog. "constra<strong>in</strong>t properties", d.h.<br />

Eigenschaften <strong>de</strong>ren Än<strong>de</strong>rung von "externen Faktoren" abhängt,<br />

d.h. gegen <strong>de</strong>ren Än<strong>de</strong>rung von an<strong>de</strong>ren Komponenten e<strong>in</strong> Veto<br />

e<strong>in</strong>gelegt wer<strong>de</strong>n kann.<br />

Metho<strong>de</strong>n zur Feststellung, ob e<strong>in</strong> Bean <strong>in</strong> e<strong>in</strong>em GUI ausgeführt<br />

wird.<br />

Abb.: Schnittstellen <strong>in</strong> java.beans<br />

232 Unter Design Pattern s<strong>in</strong>d e<strong>in</strong>fache Muster auf <strong>de</strong>r Basis von Metho<strong>de</strong>nnamen und Signaturen geme<strong>in</strong>t, z.B.<br />

- E<strong>in</strong> Property mit <strong>de</strong>m Namen Color, für das sowohl schreiben<strong>de</strong> als auch lesen<strong>de</strong> Zugriffe erlaubt s<strong>in</strong>d wird<br />

durch Implementierung <strong>de</strong>r Metho<strong>de</strong>n „public Color getColor()“ und „public void setColor()“ dargestellt.<br />

- Das Entwurfsmuster für das Verb<strong>in</strong><strong>de</strong>n e<strong>in</strong>es Event-Handlers mit e<strong>in</strong>er Event-Source besteht aus e<strong>in</strong>er<br />

Metho<strong>de</strong>, die mit „set“ beg<strong>in</strong>nt und mit „Listener“ en<strong>de</strong>t und e<strong>in</strong> Argument besitzt. Außer<strong>de</strong>m muß e<strong>in</strong>e<br />

Vererbung vom EventListener-Interface vorhan<strong>de</strong>n se<strong>in</strong>.<br />

257

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!