|
From: Vos, J. R. <jv...@an...> - 2003-08-12 18:48:26
|
If a key listener is added to the Display Surface before the frame is
created (before it is displayed) there is no way to remove that listener
until after the frame is created. addKeyListener(...) stores the
listeners until the surface is displayed, but removeKeyListener is not
overridden to remove key listeners from the stored list.
For instance:
=20
DisplaySurface foo =3D new DisplaySurface(...);
foo.addKeyListener(new KeyAdapter());
=20
There's no way to remove that listener until after foo.display();
=20
Fix:
public void removeKeyListener(KeyListener listener) {
if (frame !=3D null)
frame.removeKeyListener(listener);
else
keyListeners.remove(listener);
}
|