Ich fand es als Übung sehr praktisch den VirtalDrawTree zu nutzen und da alles selbst zeichnen zu lassen. Man kommt z.B. sehr schnell an das Problem, wann man dann einen String abschneiden und mit "..." füllen muss. Sicherlich hat das etwas mit Canvas zu tun, aber das stellt nur die Zeichenfläche selbst dar, gefüllt mit ein paar rudimentären Methoden. Den Rest kannst du dir alles selbst basteln, oder auch Windows-
API-Aufrufe nutzen. Jede sichtbare Komponente hat einen bestimmten Bereich (height, width) ab einer gewissen Position (x, y) und zeichnet sich selbst sozusagen.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)