My personal favorite is Developing Games in Java
by David Brackeen. The source code for the book can be found here http://www.brackeen.com/javagamebook
His code is pretty self descriptive, and there are plenty of comments to describe what he is doing.
With that being said, he uses a multithreaded approach to developing games which is fine for basic Java2D stuff; however, if you want to make a game with OpenGL either through JOGL or through LWJGL, you should try to pull everything into the main loop.