Пожалуйста, замените код следующим кодом, и вы получите реальное представление о том, что KeyEvent использовался основным JFrame.
Чтобы убедиться, что вы получаете все эти события, вам не нужно регистрироваться на компонентах, а просто использовать KeyboardFocusManager , который будет получать ключевые события, где бы они ни происходили.
ControlledBall() {
JFrame fr = new JFrame("Controlled Ball");
this.setBackground(Color.black);
this.setBorder( BorderFactory.createLineBorder( Color.white ) );
fr.add(this);
fr.setSize(600,400);
y_Pos = this.getHeight() - diameter ;
register();
fr.setVisible(true);
repaint();
fr.addKeyListener( new KeyAdapter()
{
public void keyPressed(KeyEvent e) {
System.out.println("I am here.....");
}
});
}