That's a very neat program.
I've seen that kind of thing done before with trees. Although I'm not really into writing java apps, that does give me some insight on how to do things.We have the same idea in Win32. Though not quite double buffering(unless it happens under the covers), does this really reduce the flickering? I guess the Graphics object is pretty powerful.
Along these lines, I'd like to add my little tip about flicker reduction, double buffering, etc.
Double buffering is a good idea in a lot of applications. It's almost a staple when using any sort of graphics. But be very careful about using it. Do not double buffer everything, unless you really need to. Take some time to calculate which area needs to be redrawn, and redraw only it. This can save a lot of computing power, and allow for smoother repaints, which may or may not be to your liking.
-------
I've got spurs that jingle jangle jingle.
As I go riding merrily along.
And they sing, "Oh, ain't you glad you're single?"
And that song ain't so very far from wrong.