I’m developing some puzzle games, and I thought I’d choose Java because I’d get less compatibility issues to deal with. But before I ‘jump’, I just want to make sure it is the reasonable choice.
So does anyone know of a good framework for building GUI puzzle games in Java?
I’ve done some googling and saw some game-engine frameworks out there, but I don’t think the kind of games of doing need a game engine (though I could be wrong, because I am not a game-programmer). From my limited understanding, for building puzzles, I’d just need some nice GUI (preferably not the old-fashion Swing components!)
And to elaborate, I do not need fancy 3D GUI. Just something like this is sufficient.
On the top of my head, I don’t remember how Java’s pure Swing API could do something like that. (Note the pieces are pluggable to one another.)

Pretty much any GUI framework will have the ability to create a puzzle layout like you describe. Although you probably won’t find ready-made puzzle piece components in a GUI toolkit, you can almost always use some kind of canvas and image drawing primitives to draw exactly what you want. I have in the past used Swing to create a GUI that is all custom and doesn’t look like a Swing app (see http://free15c.com, the code itself is on GitHub).
It’s unlikely that you would need (or want) a full game engine framework. There is more than enough capability in the standard GUI libraries to do this.
Finally, as I mentioned above in a comment, for maximum compatibility with devices of all shapes and sizes, you might consider using an HTML/Javascript implementation. This kind of click-and-drag moving images about would be pretty straightforward.