S
silvoo
Gast
Hallo,
habe folgens Problem.
Habe ein Tool geschrieben, dass Rechteck- und Polygonzeichnung als Funktion hat.
Die vorhandenen Objekte werden für Rechtecke und Polygone in zwei XML-Dateien festgehalten. Wenn das Tool neugestartet wird, werden, wenn vorhanden, die Objekte(Rechtecke oder Polygone) angezeigt. Wenn eine der beiden Funktionen aufgerufen wird, wird die andere auf null gesetzt. Beim nächsten Aufruf wird dann ein neues Objekt der Funktion erstellt. Soweit ist auch alles in Ordnung.
Beim ersten Aufruf der beiden Funktionen läuft alles wie gewünscht. Nur bei der Polygon-Funktion habe das folgende Problem.
Die Bewegungen der Polygone über die Maus werden nach mehrmaligem switchen der Funktionen immer schneller, was ich mir nicht erklären kann. Wie oben erwähnt, wird die deaktivierte Funktion immer auf null gesetzt und dann bei Bedarf ein neues Objekt erstellt. Deswegen müsste es nicht an den Startwerten liegen.
Bitte um Hilfe,
silvoo
habe folgens Problem.
Habe ein Tool geschrieben, dass Rechteck- und Polygonzeichnung als Funktion hat.
Die vorhandenen Objekte werden für Rechtecke und Polygone in zwei XML-Dateien festgehalten. Wenn das Tool neugestartet wird, werden, wenn vorhanden, die Objekte(Rechtecke oder Polygone) angezeigt. Wenn eine der beiden Funktionen aufgerufen wird, wird die andere auf null gesetzt. Beim nächsten Aufruf wird dann ein neues Objekt der Funktion erstellt. Soweit ist auch alles in Ordnung.
Beim ersten Aufruf der beiden Funktionen läuft alles wie gewünscht. Nur bei der Polygon-Funktion habe das folgende Problem.
Die Bewegungen der Polygone über die Maus werden nach mehrmaligem switchen der Funktionen immer schneller, was ich mir nicht erklären kann. Wie oben erwähnt, wird die deaktivierte Funktion immer auf null gesetzt und dann bei Bedarf ein neues Objekt erstellt. Deswegen müsste es nicht an den Startwerten liegen.
Code:
public void mouseMoved(MouseEvent e) {
if (zF.isPolyMarkierung()) {
// Positionsaenderung
if(ZeichenFlaeche.showedPolyElements.size() != 0) {
for(int i = 0; i < ZeichenFlaeche.showedPolyElements.size(); i++) {
p = ZeichenFlaeche.showedPolyElements.get(i);
orgP = ZeichenFlaeche.orgPolyElements.get(i);
// Polyon verschieben
if (p.contains(e.getPoint())
&& zeigeDynLinie == false ) {
zF.setCursor(new Cursor(13));
Point point = e.getPoint();
start = point;
bewegePolygon = true;
veraendern = true;
break;
} else {
bewegePolygon = false;
}
}
}
}
}
public void mouseDragged(MouseEvent e) {
if (zF.isPolyMarkierung()) {
// Polygon verschieben
if (bewegePolygon && e.isMetaDown() == false) {
Point end = e.getPoint();
int x = end.x - start.x;
int y = end.y - start.y;
p.translate(x, y);
p.invalidate();
start = end;
}
Bitte um Hilfe,
silvoo