Q: Should the DShapes be subclasses of JComponent?
A: No. The canvas is the component, it gets paintComponent()
and runs things from there -- sortof like the Dots example.
Q: The handout says the shapes should draw themselves, but how can
that work since they are not components?
A: A better phrasing might be "the shapes cause themselves to be drawn".
Q: Should newly created shapes be selected?
A: That's a good idea, but it's not required.
Q: Should the knobs draw on top of everything?
A: The simplest scheme is that knobs draw in
the same layer as the shape itself, covered by the same things as the shape.
Q I'm doing the smart-repaint right, but the "old" area of my shapes
is not being erased to the canvas background color.
A: Make sure you're calling super.paintComponent(g) in the canvas
paintComponent() (see the dots example).