Hallo,
im Follgenden Quellcode soll ein Element (was immer es auch tut) dann als MousMotionListener angemeldet werden, wenn die Maus sich über dem Element befindet und gedrückt wird. Nach dem Release soll es wieder abgemeldet werden. Leider funktioniert das überhaupt nicht.
Erst wenn man den remove im MouseReleased weglässt, dann reagiert das Element auf Mausbewegungen nach dem Release... Keine Ahnung warum...
[Java]
public class Panel extends JPanel implements MouseListener{
Element element;
@Override public void mouseClicked(MouseEvent e) {
}
@Override public void mousePressed(MouseEvent e) {
if (element.contains(e.getX(), e.getY()))
this.addMouseMotionListener(element);
}
@Override public void mouseReleased(MouseEvent e) {
this.removeMouseMotionListener(element);
}
@Override public void mouseEntered(MouseEvent e) {
}
@Override public void mouseExited(MouseEvent e) {
}
public Panel() {
element = new Element();
}
}
[/Java]
LG Eric
im Follgenden Quellcode soll ein Element (was immer es auch tut) dann als MousMotionListener angemeldet werden, wenn die Maus sich über dem Element befindet und gedrückt wird. Nach dem Release soll es wieder abgemeldet werden. Leider funktioniert das überhaupt nicht.
Erst wenn man den remove im MouseReleased weglässt, dann reagiert das Element auf Mausbewegungen nach dem Release... Keine Ahnung warum...
[Java]
public class Panel extends JPanel implements MouseListener{
Element element;
@Override public void mouseClicked(MouseEvent e) {
}
@Override public void mousePressed(MouseEvent e) {
if (element.contains(e.getX(), e.getY()))
this.addMouseMotionListener(element);
}
@Override public void mouseReleased(MouseEvent e) {
this.removeMouseMotionListener(element);
}
@Override public void mouseEntered(MouseEvent e) {
}
@Override public void mouseExited(MouseEvent e) {
}
public Panel() {
element = new Element();
}
}
[/Java]
LG Eric