Änderungen

Wechseln zu: Navigation, Suche

Draw2d

2.329 Byte hinzugefügt, 10:59, 15. Jul. 2010
= Zeichnungsreihenfolge und Überlappung der Figuren =
Die Figuren bilden eine Baumhierarchie. Die Zeichnung fängt vom Wurzel des Baums an - das bedeutet, dass die Kinder-Objekte nach den Eltern-Objekten gezeichnet werden und stehen deswegen immer im Vordergrund zu ihren Eltern. Jede Figur verwaltet ihre Kinder in einer geordneten Liste. Die Reihenfolge, in der die Kinder gezeichnet werden, entspricht ihrer Reihenfolge in dieser Liste. Deswegen überlappen die Kinder mit dem größeren Index die mit dem kleineren.
<br>
Wenn die Kinder zu groß für die Zeichenfläche einer Eltern-Figur sind, werden sie am Rand der Eltern-Figur abgeschnitten.
 
= Verbindungen und Routing =
== Verbindungen und Anker ==
<br>
Man sieht hier deutlich, wie der Muster definiert wird, und wie die automatische Rotation funktioniert. Bei der Definition des Templates muss man sich vorstellen, dass die Verbindungslinie waagerecht ist und der Anfang des Koordinatensystems am Endpunkt der Linie sich befindet. Die negative X-Richtung ist dann die Richtung zum Zentrum der Linie. Beim Zeichnen wird der Muster um den Winkel rotiert, den die Verbindungslinie (oder ihr letzter Abschnitt im Fall einer Polylinie) zu der X-Achse bildet.
 
= Rahmen =
Mit der Methode ''setBorder'' des Interfaces ''IFigure'' kann man einer Figur einen Rahmen zuordnen. Für die Rahmen-Objekte ist das Interface ''Border'' definiert. Wie bei anderen wichtigen Elementen, gibt es auch von ''Border'' viele fertige Implementierungen, die sich äußerlich unterscheiden. Man könnte alle vorgefertigten Rahmentypen in drei Gruppen verteilen. Das sind
* Einfache Linienrahmen (z.B. ''LineBorder'')
* Rahmen, die nach GUI-Elementen (z.B. Buttons) aussehen, das heißt gesenkt oder erhöht aussehen (z.B. ''SimpleLoweredBorder'')
* Rahmen mit einer Beschriftung (abgeleitet von ''AbstractLabeledBorder'')
<br>
Der Rahmen wird als letztes beim Zeichnen einer Figur augegeben. Deswegen ist er immer im Vordergrund im vergleich mit anderen Teilen der Figur. Die neue experimentelle Klasse ''AbstractBackground'' soll ermöglichen, auch im Hintergrund einer Figur die Teile des Rahmens zu zeichnen.
<br>
Mit der Klasse ''CompoundBorder'' kann man mehrere Rahmen kombinieren.
 
= Layer =
''Layer'' ist ein spezieller Typ von Figuren. Die ''Layer'' sind transparent optisch und auch für die Ereignisse. Das bedeutet, dass die GUI-Ereignisse wie z.B. Maus-Ereignisse sowie die "Hit Tests" werden tranparent an hinteren Figuren geleitet. Die ''Layer'' sind dafür gedacht, explizit nur in den ''LayerPanes'' benutzt zu werden.
= Anordnungen (''Layouts'') =
[[Datei:dratva_1919_example10_1_draw2d.png]]
<br>
<br>
Mit dem folgenden Code kann man die Richtung der Anordnung um 90 Grad drehen:
<br>
<source lang=java>
ToolbarLayout layout = new ToolbarLayout();
layout.setStretchMinorAxis(false);
layout.setVertical(false);
contents.setLayoutManager(layout);
</source>
<br>
<br>
Und so sieht es aus:
<br>
<br>
[[Datei:dratva_1919_example10_2_draw2d.png]]
<br>
 
[[Kategorie:Draw2d]]
258
Bearbeitungen