If you look at the code for the Animator class, the main thread runs in a tight loop with no sleep() or yield(). This is not very swing friendly, and I noticed that in some of my practice programs, the gui interaction was very jerky.
Please put in FPS functionality, so swing events can be handled in a timely fashion and so we can drive other functions like AI, etc. within controlled timeslices.
I ended up cut and pasting the Animator class to my own package and adding a sleep(33) within the run loop. Oh by the way, is the GLCanvas.willSetRenderingThread() supposed to be protected? or was the "public" modifier left off by accident? Can it be public so we can use the NVidia bug fix from classes we make from scratch?
If you don't want to mess with the Animator class, I bet you can just put a sleep() line at the end of your display() code. I don't bother with calculating the exact time delta, right now, because my notebook fps tops at 30fps, and I'm on winXP so the timer is not accurate anyways.
After the sleep fix, my programs run just like it did in GL4Java, except for any demo with teapots...Can anyone port the glutTeapot() soon? I really like the teapot!