Re: Quick question: MouseListener and multi threading
If you use AWT or Swing, then it's none of our concern, it's not a JOGL question but I'll try to answer anyway. AWT and Swing methods must be called on the Swing event dispatching thread, you can call SwingUtilities.invokeLater() and invokeAndWait() from your own thread. Swing/AWT listeners are called on the event dispatching thread too.
If you use NEWT, some methods are lifecycle heavy and mustn't be called on the EDT. Window.enqueueEvent() is similar to invokeLater() and invokeAndWait(). The NEWT listeners are called on the event dispatching thread which isn't the same as the one used by Swing and AWT and this isn't the same as OpenGL (see GLAutoDrawable.invoke(boolean, GLRunnable)).