Canvas is an AWT, heavyweight component. J–prefix components are Swing, lightweight components. Heavyweight components get rendered on top of/over/above lightweight components and obscure them. Although you can mix them there are some things to be aware of in doing so. For a discussion of this see
Mixing heavy and light components.
If you choose to stick with Swing you could replace the Canvas with a JPanel.