Mouse clicks are handled on the EventQueue. All OpenGL calls must be made from the same thread you created the context on.

You could try the following solutions:

- Calculate transformation matrices yourself (what you should be doing anyway IMHO

), and make the matrix available to your mouse handlers

- Let OpenGL calculate the matrix using lookAt, translatef, etc., then get the matrix from OpenGL and make it available to your mouse handlers