Created attachment 507 [details]
Test program showing bug
GLJPanel is supposed to allow JOGL to coexist with Swing UIs, but if we try to overlay a Swing component atop the GLJPanel, the Swing component is not refreshed when the GLJPanel is redrawn.
Overlaying a heavyweight component does work, so that's a viable workaround.
I've attached a simple program that shows the overlay of a Button and a JButton atop a GLJPanel. If you click the JButton (causing it to be redrawn) you'll see it flash into existence for a frame, until it's overwritten again on the next frame by GLJPanel.
My use case is overlaying native Java text fields atop a JOGL view to allow sophisticated text entry into an otherwise GL-based app without having to reimplement the extremely complex universe of text entry methods. Presumably this would also cause problems with a Swing popup menu that overlapped a JOGL view.
Similar experience w/ TestTiledPrintingGearsSwingAWT2 when using
[1 ] anim == true ; layered == true ; layout == false, while
[2 ] anim == any ; layered == true ; layout == true works fine (LayeredPane), as well as
[1'] anim == false; layered == true ; layout == false, while
So in  the animation (display) sort of renders the top jbutton invisible.
I am unsure whether this is a bug or a feature,
i.e. whether we are required to force the Animator driven display to update the top-level jbutton
as well .. or if users shall use LayeredPane. I guess the latter is true (-> ).
If you disagree .. please reopen and provide [an idea to] a remedy.
Ah, OK. I was adding the GLJPanel to the RootPane and then my overlay to the JLayeredPane, but if I add them both to the JLayeredPane it works. Thanks!