keyPressed() only works sometimes

Yes!

An additional way:

Also see:
Keyboard Entry Seems To Need Mouse Click To Work

:)