Eclipse will alles (betrifft Listener)

RealHAZZARD

Erfahrenes Mitglied
Tach.

Mal ne bestimmt recht einfach zu beantwortende Frage:

Warum meint Eclipse dauernt zu allen Listenern dass alle Methoden
drinstehen sollen? Also am beispiel:
Code:
  jft.addKeyListener(new KeyListener()
  			  {
 				 public void KeyTyped (KeyEvent ke)
  				  {
 			 		LookatChanges(ke.getKeyChar);
  				  }
  			  });
Er meckert:
The type new KeyListener(){} must implement the inherited abstract method KeyListener.keyTyped
(KeyEvent)


Wenn ich alle (in diesem Listener) stehenden Methoden eingebunden hab,
ist er zufrieden und macht was ich will. Nur will ich nicht alle einfügen.
Ich brauch ja auch nicht alle.
Ich glaub ich mach irgendwas falsch :-D
 
hy!

Da KeyListener ein Interface ist. Die Methoden eines Interfaces musst du implementieren.
(dasselbe wie bei den abstrakten Methoden bei einer Vererbung.)

gruss
 
Da KeyListener ein Interface ist, musst du alle seine Methoden implementieren. Einfacher gehts mit der Klasse KeyAdapter , die bereits KeyListener implementiert und du so nur die benötigten Methoden überschreiben musst.
 
aha. Ein Frage drängt sich mir da noch auf:

Wieso sieht man in Beispielen dann auch gerne mal
nur eine Methode im Listener stehen?
 
Um diese Frage zu beantworten, müssen wir diese Beispiele kennen ;) Aber ich vermute einfach mal, dass da eben von KeyAdapter abgeleitet wurde. KeyListener definiert drei Methoden und die müssen bei seiner Verwendung alle implementiert werden, da führt kein Weg dran vorbei. Oder diese Beispiele beziehen sich auf Listener-Interfaces, die nur eine Methode definieren, siehe z.B. ActionListener.
 
Zuletzt bearbeitet:
Zurück