Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.

Slides:



Advertisements
Ähnliche Präsentationen
Blue J.
Advertisements

C Sharp (C#) Martin Saternus Senior Student Partner
der Universität Oldenburg
Objektorientierte Programmierung
der Universität Oldenburg
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Java Beans von Raoul Schneider.
der Universität Oldenburg
Objektorientierte Programmierung
der Universität Oldenburg
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Einführung Blue J.
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
Abstrakte Klassen HS Merseburg (FH) WS 06/07.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Java: Grundlagen der Sprache
DOM (Document Object Model)
Ein Beispiel in Java.
Konstruktoren.
Polymorphie (Vielgestaltigkeit)
Assoziationen (Beziehungen). Zwischen Objekten kann es eine Beziehung geben.
Polymorphie (Vielgestaltigkeit)
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Objektorientierte Programmierung JDK-Klassenbibliothek
Reflection API ETIS SS04.
Reflection API ETIS SS05.
AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider.
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Beanifiing the Browser Beans implementieren Serializable.
Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
DVG Klassen und Objekte
Einführung in die Programmierung Datensammlung
Informatikunterricht mit Java
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 6 Sitzung 6: Model-View-Controller als Grundlage.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
AWT und JFC Abstract Windowing Toolkit
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
IT2 – WS 2005/20061Oct 10, 2005 Externes Verhalten – Quelltext (source code) Durch Aufrufe der Konstruktoren und Methoden kann das externe Verhalten (=die.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Java und Eclipse.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
FIN-IVS Dr.Fritz Zbrog Verteilte Systementwicklung EJB Tutorial Was wird für EJB-Entwicklung benötigt ? J2EESDK 1.4 (software developement kit)
Java Programmierung.
Objectives Verstehen was unterDelegate verstanden wird
EPROG Tutorium #5 Philipp Effenberger
EPROG Tutorium #3 Philipp Effenberger
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 1.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Java-Kurs Übung Besprechung der Hausaufgabe
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Reflection API1 Motivation Reflection API Core Reflection API: java.lang.reflect Seit JDK 1.1 integraler Bestandteil der Java- Klassenbibliothek Ermöglicht:
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Implementieren von Klassen
 Präsentation transkript:

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually manipulated in builder tools Visuelle Entwicklungsumgebung · Komplett visuell · Visuelle Verbindung mit Sourcecode · Einfache Skriptsprache (z.B. JSP) Motivation Wieder verwendbare Software Komponenten · Leicht veränderbar, da visuell bearbeitbar · Kaum Unterschiede zu Java-Klassen Plattformunabhängig, da auf Java basierend Bestandteil des JDK: package java.beans

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 2 Java Beans - Typen Visuelle Beans ist visuell (GUI) darstellbar Buttons, Textfelder, etc. z.B. SWING, AWT Eigenschaften visuell- veränderbar abgeleitet von java.awt.Component Nicht Visuelle Beans Hat keine Darstellung (GUI) Datenbank Anbindungs- Beans, Sortier-Beans, Timer, etc Eigenschaften Visuell- veränderbar Platzhalter-Symbol in Entwicklungsumgebung

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 3 Grundlagen von Java Beans Selbstbeobachtung (Introspection) Analysierbarkeit von außen Analyse des eigenen Kontextes Eigenschaften (Properties) Attribute beschreiben den Zustand des Beans Spezielle Zugriffmethoden (Property-Programmierkonventionen) Ereignisse (Events) Auslösbarkeit von Ereignissen (Java 1.1 Modell) Anpassung (Customization) Änderung von Eigenschaften visuell bzw. interaktiv Speicherung (Persistenz) Speicher bzw. Ladbarkeit von Beans

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 4 METHODEN Java Bean Darstellung JAVA BEAN EIGENSCHAFTEN EREIGNISSE CUSTOMIZER HD PERSISTENZ BEANINFO

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 5 Java Beans Design Vorschriften Öffentlicher Konstruktor ohne Parameter Implementation von java.io.Serializable Javabeans Programmierkonventionen Get / Set – Methoden für Eigenschaften Add / Remove – Methoden für Ereignisse Multitasking Umgebungssicher Thread Sicherheit

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 6 Eigenschaften (Properties) Zugriffsarten Zugriff durch get bzw. set Methode getValue() bzw. setValue(1234) Zugriff während der Anpassung (Customization) Visuelle Entwicklungsumgebung durch · Property Editor · Property Sheet Direkter Zugriff in Scriptumgebung (JSP etc) B.value = 1234 · Zugriff als wäre es Variable · Aufruf der set bzw. get methode implizit

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 7 Eigenschaften (Properties) Typen Einfache Eigenschaften (Simple Properties) int, string, boolean, etc. Indizierte/Indexierte Eigenschaften (Indexed-Properties) Zusammenfassung gleicher Eigenschaften in Arrays Gebundene Eigenschaften (Bound-Properties) Informierung der angemeldeten Komponenten über Änderung eingeschränkte Eigenschaften (Constraint-Properties) vor Änderung Informierung der angeschlossen Komponenten die evtl. Veto einlegen können

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 8 Simple-Properties (Einfache Eigenschaften) Programmierkonvention public getXXX() public void setXXX ( wert ) Nicht notwendigerweise set und get Methode Zugriffs- & Integritätsprüfung in diesen Methoden möglich Zugriff auf Eigenschaften nur durch diese Methoden Bei boolschen Wert isXXX() möglich RECHTECK Color Farbe; … getFarbe(); setFarbe(Color neu); … Name Eigenschaften Methoden

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 9 Indexed-Properties (Indizierte Eigenschaften) Programmierkonvention public [ ] getXXX() public getXXX( int index ) public void setXXX( [ ] werte ) public void setXXX( wert, int index ) Wie Einfache-Eigenschaften Index um Zugriff auf Elemente des Feldes zu bekommen DOPPELBOX Color[ ] Farben; … getFarben(); setFarben(Color[ ] neu); getFarben(int index) setFarben(Color neu, int index)

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 10 Ereignisse (events) BEAN addXXListener (…) Objekt Trägt sich ein EVENT Obj

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 11 Ereignisse (events) Basiert auf dem Java Event Model Sender / Listener - Modell Bean muss Listener verwalten z.B. durch java.util.Vector Programmierkonvention für Multicast (mehrere Listener) public void add ( listener) public void remove ( list.) Unicast (ein Listener) public void add (...) throws java.util.TooManyListenersException

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 12 Bound-Properties (Gebundene Eigenschaften) SENDER Property - Changesupport changes; Object wert; EMPFÄNGER addP.C.Listener() Trägt sich ein Implementiert Property- ChangesListene r propertyChange (ChangeEvent evt) getWert() setWert(Obj new) Feuert Event

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 13 Bound-Properties Basiert auf Simple bzw. Indexed Eigenschaften set / get Methode vorhanden Funktionsumfang erweitert PropertyChangeSupport wird instanziert add/removePropertyChangeListener werden implementiert mehre interessierte Listener können sich eintragen (Multicast) · (Unicast) auch möglich Set Methode der Eigenschaft informiert Listener ruft firePropertyChange Methode auf · feuert Event nach Änderung des internen Zustandes

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 14 Constained-Properties (Eingeschränkte Eigenschaften) SENDER Vetoable- Changesupport changes; Object wert; addV.CListener getWert() EMPFÄNGER vetoableChange (ChangeEvent evt) Implementiert vetoable- ChangeListene r getWert() setWert(Obj new) Feuert Event entscheidet ob Änderung stattfinden darf

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 15 Constained-Properties Listener können VETO zu Änderung einlegen Sonst wie Bounded Properties Listener können Veto einlegen zu Änderung · set Methode wirft PropertyVetoException VetoableChangeSupport wird instanziert add / removeVetoableChangeListener wird implementiert Multicast Set Methode informiert eingetragene Listener Meistens gekoppelt mit Gebundenen Eigenschaften feuert Event vor Änderung des internen Zustandes

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 16 Selbstbeobachtung (Introspection) Entwicklungsumgebung analysiert Bean benutzt low level reflection erhält Informationen über öffentliche Schnittstellen der Bean Programmierkonventionen nötig um · Eigenschaften · Ereignisse · Methoden unterscheiden zu können Auch Angabe der Schnittstellen durch Programmierer möglich BeanInfo Klasse

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 17 Anpassung (Customization) Property-sheet Änderungen der Eigenschaften visuell über get/set – Methoden realisiert Property-Editoren in meisten IDEs vorgefertigte Editoren für Standard Typen color, string, integer, boolean, etc kann auch bei eigenen Typen selbst erstellt werden Customizer komplexe Bean, z.B. Tabellenkalkulation z.B. Wizard, der das Anpassen der Bean erleichtert · kann jede gewünscht GUI Funktionalität haben

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 18 Persistenz (Speicherung) Beans können ihren internen Zustand speichern implementieren java.io.Serializable Speicherung z.B. im XML Format java.beans beinhaltet Methoden die dies leisten · java.beans.XMLdecoder Beans können sich aus einer Datei selbst initialisieren Bean wird in einem Builder angepasst und gespeichert aus dieser Datei kann der ursprünglichen Zustand der Bean wiederhergestellt werden

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 19 Speicherung der Beans Speicherung in JAR (Java ARchive) Manifest Datei nötig (.mf) · beschreibt was in der JAR Datei steht gehört zum JDK Visuelle Entwicklungsumgebungen für Beans öffnen JAR Datei analysieren Manifest bindet Beans aus JAR Datei ein

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 20 Arbeiten mit Java Beans Kaufen oder Programmieren der Beans Zusammenstellung der Beans Bean-Builder Von Hand programmiert Speichern der Zusammenstellung durch Builder Serialisierung der internen Zustände der Beans Speicherung der Verbindungen · Eingetragene Listener, etc. · Aufgabe des Builders

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 21 Java Bean Builder Sun Beanbuilder 1.0 beta Frei erhältlich Eher zu Demonstrations-Zwecken geeignet Borland JBuilder Personal Edition frei erhältlich Komplette Entwicklungsumgebung Viele Komponenten vordefiniert Entwicklung jeder Art von Java-Programmen möglich

Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 22 Vor-/Nachteile von JavaBeans Vorteile write once, run everywhere Introspektion Umfangreiche Bibliotheken Dynamisches Nachladen von Klassen Nachteile kein Komponentenmodell, sondern … Nicht echtzeitfähig Interpretierter bytecode · Langsam Kaum Unterstützung bei der Komponenten-Erzeugung