Ich kann nicht scheinen, den Unterschied zwischen den 2 Schnittstellen zu verstehen. Warum kann nicht wie Mouseadapter Mouselistener implementiert werden und kann nur
MouseAdapter implementiert MouseListener erweitert werden.
Mouseadapter:
Eine abstrakte Adapterklasse für Mausereignisse zu empfangen. Die Methoden in dieser Klasse sind leer. Diese Klasse existiert als Zweck zum Erstellen von Listener-Objekten. erweitern diese Klasse eine Mouseevent (einschließlich Drag-and-motion events) oder/und MouseWheelEvent Zuhörer zu schaffen und die Methoden für die Ereignisse von Interesse
In Abwesenheit von MouseAdapter
außer Kraft setzen, wenn Sie MouseListener
implementieren, müssen Sie die Umsetzung zur Verfügung zu stellen zu allen diesen Schnittstellenmethoden.
mouseClicked(MouseEvent e)
mouseDragged(MouseEvent e)
mouseEntered(MouseEvent e)
mouseExited(MouseEvent e)
mouseMoved(MouseEvent e)
mousePressed(MouseEvent e)
mouseReleased(MouseEvent e)
mouseWheelMoved(MouseWheelEvent e)
wenn wäre es klug, die ein und wenn die andere zu benutzen?
Wenn Sie die obigen 8 Methoden implementieren möchten, implementieren Sie MouseListener
.Wenn Sie nur für einige dieser 8 Methoden eine Implementierung bereitstellen möchten, verwenden Sie MouseAdapter
und überschreiben Sie nur die für Sie interessanten Methoden.
z.B. Wenn Sie nur ein Ereignis (oder wenige Ereignisse) wie mouseClicked(MouseEvent e)
Ereignis implementieren möchten, verwenden Sie am besten MouseAdapter
. Wenn Sie in diesem Fall die Schnittstelle MouseListener
implementieren, müssen Sie eine leere Implementierung für andere Methoden bereitstellen, die Sie nicht implementieren möchten.
Einfache Google Foo hätte Ihnen die Antwort gesagt. Mein google foo zeigt [das] (https://blogs.oracle.com/corejavatechtips/listeners-vs-adapters) – SomeDude
So ein Maushörer ist eine Schnittstelle. Das heißt, es hat keinen Inhalt. Eine Schnittstelle ist eine Grundstruktur. Es enthält nur Methodennamen. Also, Java sieht, Sie implementieren MouseListener, was bedeutet, müssen Sie seine Methoden haben, wie freigegeben, so dass sie von AWT/swing – user7185318