This is an extremely old tutorial, back when I was a noob at game programming. One of the most destructive parts of this crap code is the multi-threaded key input. Swing puts all KeyEvent firings in a separate thread, so I implore everyone to look at video 9 (final - Artifact game) of this tutorial to check out the Keys class in the source code so as to put all game logic on a single thread.
This is a new tutorial series.
The game is a tile based, side-scrolling platformer.
The goal of this series is about helping you come up with ways to organize your games.
About the Background, I just forgot to mod the x and y in the update() method. Just look at the setPosition() method to fix it.