OK, now I see you've changed your paintComponent method to paint, and I strongly recommend against this as you're still drawing directly in the JFrame, which you shouldn't be doing, and you're still calling super.paintComponents(...) which does something completely different. We seem to be going in a bad direction. Please let me suggest a couple of things:
1) Consider starting over as this code is getting to be a mix of things that you don't want.
2) Get one thing working at a time. I'd start with a simple animation without worrying about key presses to start with.
3) Do all your drawing in the paintComponent method of a JPanel and then add that JPanel to a JFrame.
4) This methods first line should be super.paintComponent(g) (no s at the end).
5) Use a Swing Timer not a
thread to do the animation... the Swing tutorials will show you how to use this, and also if you search this forum, you'll see example code that uses a Swing Timer for animation.
Then when this is working, work on adding the key presses.
1) Use key binding rather than a key listener. For one thing this will get you out of having to worry so much about the component being listened to having focus. Again the Swing tutorials will show you how to do this.
2) Get this working first by itself, not in an animation app.
Then once the key binding works,
1) Combine the two codes.