For those interested in Java game programming, I've posted my source code for Pacman on my website. Here's the game:

You can learn some basic stuff like double buffering, using AWT graphic operations, managing game state with a FSM, incremental updates, huerisitc AI, etc. There's also another tool (older version though) that can generate the source code for the mazes.