GLCanvas is heavyweight. GLJPanel is lightweight, as are JPanel, JMenu, etc.
In older versions of Java there were problems putting lightweight components over heavyweight - the heavyweight component would always show through. This has fairly recently been fixed in AWT so that putting lightweight over heavyweight mostly works well now. See this article for more information:
http://java.sun.com/developer/technicalArticles/GUI/mixing_components/index.htmlAccording to the article the improvements went into 6u12 so make sure you are using at least that version.