Hi
A single OpenGL application can use several OpenGL contexts. A context is necessary to store some data used by OpenGL, it is explained here:
http://www.opengl.org/wiki/OpenGL_ContextSometimes, an application would like to preserve and use the same context even though one of its panel is no longer visible, it uses a shared context that can be passed to a JOGL canvas (GLCanvas, GLWindow, GLJPanel).
Certain changes on a surface or a panel can cause the destruction of the context, especially when NEWT is
not used.
There are some examples on the official repository.