Class DrawTree
java.lang.Object
|
+----java.awt.Component
|
+----java.awt.Canvas
|
+----DrawTree
- public class DrawTree
- extends Canvas
Diese Klasse implementiert die ganze graphische Darstellung eines
binären Baumes. Sie wird etwa in TreeAlgorithm und Subklassen verwendet.
Vorhanden sind Routinen zum (animierten) Zeichen eines Baumes und
markieren von Knoten.
Zur flackerfreien Darstellung wird Doppelpufferung verwendet.
- See Also:
- DrawItem, TreeAlgorithm
-
DrawTree()
-
-
animateTreeChange(Node, int)
- Animierter Baumwechsel.
-
createPuffer()
- Erzeugt einen Puffer.
-
drawElement(DrawItem, Graphics)
- Zeichnet einen einzelnen Knoten.
-
drawRec(Node, Graphics)
- Zeichnet den Baum.
-
getPreferredSize()
-
-
markNode(Node)
- markiert Knoten.
-
paint(Graphics)
-
-
setSize(int, int)
- Grössen einstellen.
-
setStatusText(String)
- schreibt einen Text in die Graphik.
-
setTree(Node)
- Setzt den von DrawTree zu zeichnenden Baum.
-
update(Graphics)
-
DrawTree
public DrawTree()
setTree
public void setTree(Node t)
- Setzt den von DrawTree zu zeichnenden Baum.
Zusätzlich werden mit adjustNodePos die Koordinateneinträge in
den DrawItem-Elementen jeden Knotens angepasst,
und die Zeichenfläche (im Puffer) wird gelöschst.
Diese Methode muss vor dem ersten Zeichnen aufgerufen werden.
- Parameters:
- t - (Wurzel-)Knoten des zu zeichnenden Baumes.
- See Also:
- pausePaint, animateTreeChange
animateTreeChange
public void animateTreeChange(Node t,
int step)
- Animierter Baumwechsel.
Die Funktionalität ist im wesentlichen die gleiche wie bei setTree,
über den Parameter step lässt sich die Grösse der Verschiebung der Knoten
in der Graphik steuern : verschoben wird um 1/step.
Für step=1 ist animateTreeChange äquivalent zu setTree.
- Parameters:
- t - (Wurzel-)Knoten des zu zeichnenden Baumes.
- step - Schrittgrösse bei Verschiebung der Knoten beim neuzeichnen.
- See Also:
- pauseAnimateTreeChange, setTree
markNode
public void markNode(Node p)
- markiert Knoten.
In der Graphik (im Puffer) wird ein Knoten markiert.
Diese Routine ist nach setTree und vor repaint aufzurufen.
- Parameters:
- p - Knoten, der markiert wird
- See Also:
- pauseMarkNode
setStatusText
public void setStatusText(String s)
- schreibt einen Text in die Graphik.
Dieser Text wird bei jedem Zeichnen ausgegeben.
- Parameters:
- s - auszugebender Text
setSize
public void setSize(int off,
int rad)
- Grössen einstellen.
Hier werden die Grössenmasse der graphischen Darstellung eingestellt.
- Parameters:
- off - neuer Offset
- rad - neuer Radius
- Overrides:
- setSize in class Component
drawRec
protected void drawRec(Node p,
Graphics g)
- Zeichnet den Baum.
drawRec zeichnet rekursiv den Baum.
Diese Methode wird von paint aufgerufen. Vorher ist ein Aufruf von
adjustNodePos nötig, um die Koordinaten der Knoten anzupassen.
- See Also:
- adjustNodePos, paint
drawElement
protected void drawElement(DrawItem d,
Graphics g)
- Zeichnet einen einzelnen Knoten.
Wird innerhalb von drawRec aufgerufen, und zeichnet mittels der
Informationen im DrawItem die graphische Darstellung eines Knotens.
- See Also:
- drawRec, DrawItem
createPuffer
public void createPuffer()
- Erzeugt einen Puffer.
Hier wird der Puffer für die Doppelpufferung erzeugt.
Bei Bedarf wird der Puffer vergrössert (nicht verkleinert !)
Wird von paint aufgerufen.
- See Also:
- puffer
paint
public void paint(Graphics g)
- Overrides:
- paint in class Canvas
update
public void update(Graphics g)
- Overrides:
- update in class Component
getPreferredSize
public Dimension getPreferredSize()
- Overrides:
- getPreferredSize in class Component