Yes and no. Swing is built on top of AWT but AWT uses heavy weight components -- components that are created by the native OS, while Swing for the most part uses light-weight components -- components that are created by Swing code itself, and so mixing will often cause these problems. The exceptions are some root containers such as JFrame.
I've had no trouble in any circumstance using a Canvas within swing components. Also, aren't all swing components extensions of awt components... and thus compatible with each other?