Well, it really depends on what you want to learn. When I first encountered Java, I developed Tetris in it. The advantages of games like these are simple:
- Small, easy to understand goal
- You can extend it in endless way (to learn what you want to learn about, examples at the bottom)
- Require a lot of different tools/libraries to
accomplish
- They are generally more fun than
desktop applications, unless you find
something that is actually something you will use (if
you have such an idea, go for it)
In Tetris I used basic swing components for Menubar and such, Graphics2D for drawing, event handling (mostly keyboard events and game events), probably a bunch more but I can't remember. And of course involves really nice, simple to difficult challenges for OO design.
I was pretty happy with it and extended it to have a score board (file access or however you solve that)
2-Player mode on same screen, to see how my design could handle it
Networking, same as above, but over internet
I also developed a minesweeper clone shortly after that and I still play it regularly (after 6 years and I'm quite proud of it), it simply better than minesweeper classic :)
After that you have a rather broad and not very good understanding (most likely), but it's a great starting point to dive deeper into what you learned. Worked great for me at least.