imakerobots wrote
I tried putting a dialog box and a
system.exit() in the override for GLEventListener.init().
The dialog box appeared and exit() was called but I was surprised to see the
rest of the app appear and that display() was called after that.
Yes, this is surprising.
As if System.exit() is processed after completing our GLEventListener processing.
imakerobots wrote
Is display() happening in a different thread from init()?
No. it is called from same rendering thread helper processing all GLEventListener.
init is called before display, usually only once or if recreating the resource.