Nice - I like how all the moving is encapsulated here and the KeyAdapter just acts as a dispatcher. Very clean code.