snoopysalive
Mitglied
Hi!
Ich habe in Swing ein JPanel gebaut, welches sich einfach verschieben lassen soll, wenn man darauf die linke Maustaste drückt, hält, die Position ändert und dann wieder los lässt. Also ein Job für den MouseMotionListener und der Methode mouseDragged.
Hier meine Listener-Implementierung:
Das Problem besteht jetzt darin, dass beim Verschieben das JPanel ständig hin und her sprint anstatt am Mauszeiger zu "kleben". Die Ausgaben auf dem STDERR zeigt euch, was passiert, wenn ich das JPanel von links nach rechts verschiebe.
Warum liefert getPoint() nicht die richtigen Cursor-Positionen zurück? Daran liegt es ja schließlich, dass das Panel ständig hin und her springt.
Danke und Gruß,
Matthias
Ich habe in Swing ein JPanel gebaut, welches sich einfach verschieben lassen soll, wenn man darauf die linke Maustaste drückt, hält, die Position ändert und dann wieder los lässt. Also ein Job für den MouseMotionListener und der Methode mouseDragged.
Hier meine Listener-Implementierung:
Java:
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
System.err.println(e.getPoint());
setLocation(e.getPoint());
}
});
Das Problem besteht jetzt darin, dass beim Verschieben das JPanel ständig hin und her sprint anstatt am Mauszeiger zu "kleben". Die Ausgaben auf dem STDERR zeigt euch, was passiert, wenn ich das JPanel von links nach rechts verschiebe.
Code:
(...)
java.awt.Point[x=82,y=23]
java.awt.Point[x=101,y=100]
java.awt.Point[x=83,y=23]
java.awt.Point[x=102,y=100]
java.awt.Point[x=86,y=23]
java.awt.Point[x=108,y=100]
java.awt.Point[x=95,y=23]
java.awt.Point[x=115,y=100]
(...)
Warum liefert getPoint() nicht die richtigen Cursor-Positionen zurück? Daran liegt es ja schließlich, dass das Panel ständig hin und her springt.
Danke und Gruß,
Matthias