I still recommend OpenGL, I know there is an API for Java. Pixel graphics means that you are directly manipulating the buffer instead of using OpenGL's primitives.

Forget getkey, use a listener instead. GLUT has a listener built in called GlutKeyFunc(void keys())

Again, OpenGL is best for C and other procedural oriented languages. For OOP most would use Allegro or DirectX. I've never used either, I've heard bad things about DirectX, but I've heard that Allegro was easy to use.

EDIT: Oh, SDL uses OpenGL I guess it's a library for buffer manipulation?