Hallo,
schonwieder hab ich ein Problem: Ich hab einen Button auf einen Panel, welches das Interface MouseMotionListener implementiert. Jetzt bekommt aber das Panel nix von den Mousebewegungen auf dem Button mit. Gibt es eine Möglichkeit, das der Button die MouseMotionEvents an das Panel weiterleitet?
Vielen Dank im Vorraus.
Gruß
Jochen
Hallo Jochen,
am einfachsten eine eigener Button-Typ erzeugen die von Button erbt!
z.B.
public class MySpecialMouseButton extends Button implements
MouseMotionListener
{
Panel p;
public MySpecialMouseButton(Panel aPanel)
{
p=aPanel;
addMouseMotionListener(this); //Richtiger Aufruf??
}
public void mouseMovedOderSoMethode(MouseMotionEvent ev)
{ // Beispiel!
p.mouseIsInButtonMeldung(ev.getSource());
}
}
„mouseIsInButtonMeldung(ev.getSource())“ soll eine Methode im Panelobjekt sein. Vielleicht solltest du dazu auch ein eigenes Panel nach gleichem Muster entwerfen, und so eine Methode implemetieren.
Es ist im Allgemeinen ein guter Ansatz, seine eigene Objekte zu bauen, die dann Eigenschaften und Verhalten haben, so wie man es selbst möchte. Machen wir aus allgemeine Klassen hochspezialisierte Klassen! Das ist die Daseinsberechtigung von OOD + OOP!
MfG.
Marc Loonus
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]