JHotDraw

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

JHotDraw ist ein freies, Java-basiertes Framework zur Erstellung von grafischen Editoren. Typische Bestandteile dieser Art von Editoren sind domänenspezifische, grafische Objekte (engl.: Figures) und Sichten (engl.: Views), Werkzeugpaletten (engl.: tool palette) und eine konsistente Art und Weise diese Objekte zu sondieren und zu manipulieren.

Anwendungen von JHotDraw[Bearbeiten]

UML-Editoren, Workflow-Management-Systeme oder (grafische) Petri-Netz-Simulatoren sind prädestinierte Anwendungen für JHotDraw.

Benutzung von JHotDraw[Bearbeiten]

Charakteristischer Unterschied gegenüber Klassenbibliotheken ist, dass der Kontrollfluss vom Framework vorgegeben wird. Der Benutzer des Frameworks kann sich mittels Vererbung und dem Überladen dafür vorgesehener Methoden in die Ereignisverarbeitung (Maus-/Tastatur-Events, Repaint-Events) einklinken, um domänenspezifische Funktionalität zu implementieren.

Entwurfsmuster in JHotDraw[Bearbeiten]

JHotDraw wird (nicht nur) im akademischen Bereich gerne genutzt, um den gewinnbringenden Einsatz von Entwurfsmuster (engl. "design patterns") zu demonstrieren und zu untersuchen. Erich Gamma, Mitautor des GoF-Buchs "Entwurfsmuster - Elemente wiederverwendbarer objektorientierter Software" ist einer der Entwickler von JHotDraw.

Wurzeln[Bearbeiten]

Die Wurzeln von JHotDraw liegen im Smalltalk-basierten "HotDraw"-Framework.

Alternativen[Bearbeiten]

Es gibt diverse andere Frameworks, die ähnliche Funktionalität bieten wie JHotDraw. Hauptkonkurrent ist das ebenfalls kostenlose Graphical Editing Framework (GEF) aus dem Eclipse-Projekt, welches statt AWT/Swing das SWT-Toolkit nutzt. Damit ist man bei der Wahl des Widget-Toolkits relativ festgelegt, auch wenn Brücken-Komponenten entwickelt werden um Swing/Java2D-basierte Subsysteme mit SWT (und umgekehrt) nutzen zu können. Das Piccolo-Projekt bietet einen komplexen, Scene-Graph basierten Ansatz zur Darstellung von Figuren sowie als spezielles Merkmal stufenlose Vergrößerung auf Basis von Java2D.

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]