Änderungen

Wechseln zu: Navigation, Suche

Draw2d

857 Byte hinzugefügt, 13:10, 12. Jun. 2010
/* Routing */
=== Routing ===
Wie man oben gesehen hat, zeichnet die ''PolylineConnection'' eine gerade Linie zwischen den von Anker festgelegten Punkten. Oft braucht man aber die Möglichkeit, die Linien anderer Formen zu zeichnen. In diesem Fall kann man eine neue Implementierung von ''Connection'' entwickeln. Es besteht aber eine einfachere Möglichkeit - das ''Connection''-Objekt mit einem ''ConnectionRouter'' zu parametrieren. Das macht man mit der Methode ''Connection.setConnectionRouter''. ''ConnectionRouter'' ist ein Interface in draw2d, vom dem es mehrere fertige Implementierungen gibt:
* AbstractRouter - abstrakte Klasse mit einigen Hilfsfunktionen.* AutomaticRouter - abstrakte Klasse mit "Collision Detection" - Erkennung überlappender Verbindungen. Die Auflösung des Konflikts müssen die abgeleiteten Klassen übernehmen.* FanRouter - eine Ableitung von ''AutomaticRouter'' mit Konfliktauflösung. Die Konflikte werden so gelöst, dass mehrere Verbindungen zwischen zwei gleichen Punkten unterschiedlich geführt werden und eine Art Ventilatorschaufel bilden.* BendpointConnectionRouter - führt die Linie über die in einer Liste gegebenen Punkte.* ShortestPathConnectionRouter - finden den kürzesten Pfad, der alle Kinder einer gegebenen Figur meidet.* ManhattatConnectionRouter - erzeugt eine rechteckige Verbindung mit nur senkrechten und waagerechten Linien.<br>Hier ein Beispiel mit dem ''ManhattanConnectionRouter'':<br>
<source lang=java>
Label label1 = new Label("Label 1");
442
Bearbeitungen