Problem mit Mausevents (Drag & Drop)

Von: , Frage gestellt am So, 5. Sep 2004

hab mal wieder ein Problem ich komme um diese Uhrzeit einfach nicht weiter, vielleicht habt ihr ne Idee.

Ich zeichne einen Punkt, und wenn ich auf diesen Punkt klicke kann ich ihn per Drag und Drop verschieben.

public void mouseDragged(MouseEvent me) {
zeiger.set(me.getX(),me.getY());
for (int j = 0; j < menge; j++)
if(zeiger.istInKreis(graph[j],5))
graph[j]=zeiger;
repaint();
}



So sieht meine Funktion aus.
zeiger ist ein Punkt(x,y)

Die Funktion istInKreis überprüft ob der Punkt zeiger im Radius von 5 Pixeln um den Punkt(x,y) im Array graph[]
ist.
Wenn ja, soll die Zeigerposition im Array gespeichert werden.
Denn in meiner Paint Methode wird das Array graph[] gezeichnet.

Mein Problem ist nun, daß wenn ich einmal einen Punkt verschoben habe, und dann irgendwo hinklicke wo kein Punkt ist und ich dort mit der Maus "dragge" dann erscheint der zuletzt verschobene Punkt an dieser Stelle, wenn ich auf einen anderen Punkt klicke wird dieser überschrieben und ich habe 2x den selben Punkt im Array.
Ich habe bereits mit mehreren Punkten versucht, also einmal den Punkt beim Drücken der Maustaste und einen anderen Punkt beim draggen, aber auch das brachte keine Abhilfe.

Ich hoffe ich konnte das Problem anschaulich genug darstellen ;-)

Gruß Wizard of War

2 Antworten zu dieser Frage

  1. Antwort von nach 15 Stunden 1 hilfreich
    Re: Problem mit Mausevents (Drag & Drop)

    Moin hab mal wieder ein Problem ich komme um diese Uhrzeit einfach
    nicht weiter, vielleicht habt ihr ne Idee.
    Das Problem mit der Uhrzeit hab ich auch öfter...

    Willst du wirklich Drag&Drop verwenden (sprich den Punkt auch in andere nicht-java-Programme verschieben können) oder reicht dir bewegen des Punktes ?

    Wenn's nur ums Bewegen geht:

    Kuck in MousePressed ob die Maus in der Nähe des Punktes ist. Wenn dem so das in Variablen speichern und in MouseDragged die Variablen verändern. In MouseReleased den Punkt dann absetzen. Wenn du nur mit MouseDragged arbeitetes wird das nichts werden.

    cu

    • Antwort von nach einem Tag 0 hilfreich
      Re^2: Problem mit Mausevents (Drag & Drop)

      Kuck in MousePressed ob die Maus in der Nähe des Punktes ist.
      Wenn dem so das in Variablen speichern und in MouseDragged die
      Variablen verändern. In MouseReleased den Punkt dann absetzen.
      Wenn du nur mit MouseDragged arbeitetes wird das nichts
      werden.
      Vielen Dank, so wirds klappen!

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!