Hallo,
ich habe ein Problem. Und zwar möchte ich etwas mit Path2D zeichen, dazu habe ich einen MouseListener und einen MouseMotionListener. Der MouseListener registriert dabei die Mouseklicks um mit diesen Punkten den Weg zu zeichnen. Der MouseMotionListener soll dem Betrachter vor jedem Klick quasi eine Vorschau geben wohin der Pfad verlaufen wird.
Ich speichere mir nach jedem Klick den alten Pfad und mache jetzt bei jeder Mausbewegung erst eine lineTo vom bisherigen Pfad zur aktuellen Mauszeigerposition, dann lasse ich dies für den Benutzer anzeigen und anschließend überschreibe ich den aktuellen Pfad mit dem alten Pfad.
So theoretisch sollte er jetzt bei jeder Mausbewegung eine Linie vom alten Pfad zur Mausposition ziehen, was er aber nicht macht, statt dessen überschreibt er irrsinnigerweise sogar den alten Pfad obwohl das nirgendwo im Quelltext steht ???:L ???:L ???:L
Code-Fragment aus dem MouseListener
und ein Code-Fragment aus dem MouseMotionListener
Meine Frage wäre jetzt was genau ich falsch mache bzw. warum er oldPara mit den Werten von para überschreibt was im Quelltext überhaupt nicht vorkommt.
MfG
Mr. J
ich habe ein Problem. Und zwar möchte ich etwas mit Path2D zeichen, dazu habe ich einen MouseListener und einen MouseMotionListener. Der MouseListener registriert dabei die Mouseklicks um mit diesen Punkten den Weg zu zeichnen. Der MouseMotionListener soll dem Betrachter vor jedem Klick quasi eine Vorschau geben wohin der Pfad verlaufen wird.
Ich speichere mir nach jedem Klick den alten Pfad und mache jetzt bei jeder Mausbewegung erst eine lineTo vom bisherigen Pfad zur aktuellen Mauszeigerposition, dann lasse ich dies für den Benutzer anzeigen und anschließend überschreibe ich den aktuellen Pfad mit dem alten Pfad.
So theoretisch sollte er jetzt bei jeder Mausbewegung eine Linie vom alten Pfad zur Mausposition ziehen, was er aber nicht macht, statt dessen überschreibt er irrsinnigerweise sogar den alten Pfad obwohl das nirgendwo im Quelltext steht ???:L ???:L ???:L
Code-Fragment aus dem MouseListener
Java:
public void mouseClicked(MouseEvent clickEvent) {
para.moveTo(startX, startY); //Initialisierung des Paths
oldPara.moveTo(0,0); //Initialisierung des SpeicherPaths
oldPara = para; //Speicher wird mit aktuellem Path überschrieben
}
und ein Code-Fragment aus dem MouseMotionListener
Java:
public void mouseMoved(MouseEvent moveEvent) {
para.lineTo(x,y); //neuer Weg zur aktuellen Mauszeigerposition
parentIC.setShape(para); //neuer Weg wird gezeichnet
para = oldPara; //neuer Weg wird mit altem Weg überschrieben
}
Meine Frage wäre jetzt was genau ich falsch mache bzw. warum er oldPara mit den Werten von para überschreibt was im Quelltext überhaupt nicht vorkommt.
MfG
Mr. J
Zuletzt bearbeitet: