According to your first requirement, you are looking for a framework rather than a library.
jMonkeyEngine is a framework for 3D games (i.e. it provides the main loop as you ask for, similar to XNA) but it wouldn't be a good choice for 2D.
However, a game loop isn't a hard thing to write, and existing Java libraries handle your 2nd and 3rd requirements, so I highly suggest looking into a scene graph 3D library/engine or any 2D library, depending on if you're making a 2D or a 3D game.
Aviatrix3D, Ardor3D, Java3D and jMonkeyEngine are my recommendations for scene graph 3D engines.
For 2D libraries, you have JGame, or you can choose to use OpenGL for max speed and use LWJGL or JOGL. You could also just go with Java's built-in Graphics2D library, which would be an especially good option if you plan to deploy your game as an applet.
For going the built-in Graphics2D route, look at the source code to Metagun (click to play in applet form). It's a small but very well-written 2D Java game, and I think it's an excellent example of a small game; copy its structure and you have your optimal game loop/framework.