I hit this issue once before and for my main display, and I switched to using a CardLayout to flick between various scenes (GLCanvas) in my game.
Now I have a smaller area that I also need to switch between 2 GLCanvas. Initially I was adding and removing from a JPanel parent container. This seems to damage something within the GLCanvas state, even though I still have a solid reference to the GLCanvas, so it’s something about calling removeAll on a JPanel that contains a GLCanvas. I tried using my CardLayout work-around, but in this case I need the panel contents to be sifferent sizes which CardLayout doesn’t seem to handle (everything is as big as largest component?).
Any tips?