Grafische Objekte skalierbar und rotierbar machen

DerKoenig

Mitglied
Wie macht man grafische Objekte, Kreise, Vierecke skalierbar und rotierbar?

Natürlich könnte man das Ganze selbst mit MouseListener basteln, jedoch glaube ich nicht, dass ich der Erste bin der sich mit diesem Thema auseinandersetzt.

Also ich möchte eine grafische Oberfläche und darin grafische Objekte zeichnen, die ich anklicken und rotieren bzw. skalieren kann

Irgendwelche Ansätze? Hab schon ein paar Java Tools von Firmen gesehen, die z.B. Linien haben die man krümmen kann oder Ähnliches (z.B. UML) basierend auf Java...

Bin dankbar für jeden Hinweis
 
Also komme ich um den Mouselistener nicht drum herum?

Wenn ich ein Objekt zb in Photoshop anklicke und es frei transformierbar ist, dann erscheinen an der Seite des Objektes diese 'Anker' die man mit der Maus hin und herschrieben kann um das Objekt größer oder kleiner zu machen oder gegebenenfalls zu rotieren.

Habt ihr da irgendwelche Ansätze? Die Methoden die showfly gezeigt hat, (danke dafür) sind ja nur dafür da, um das Objekt im Endeffekt in die richtige 'Stellung' zu bringen
 
Also komme ich um den Mouselistener nicht drum herum?
Also das SDK bringt ja schon einiges mit, aber irgendwann hört es dann schon auf ;P
-> Jedenfalls ist mir kein Framework oder Methode bekannt, die das SDK liefert, welche deinen Anforderungen gerecht werden würde.

Ansätze für deine Anforderungen - aus meiner Nicht-GUI-Entwickler-Sicht, wohlbemerkt:
Also, wenn du eine geometrische Form zeichnest, nehmen wir z.B. ein Rechteck, musst du dir dieses irgendwo merken.
Wenn du jetzt aufs "Zeichenbrett" draufklickst, musst du mit dem MouseListener und dem entsprechenden MouseEvent herausfinden, ob du das Rechteck angeklickt hast. Das kann man z.B. mit Rectacle.intersects() überprüfen. Gibt das true zurück, hast du das Rechteck quasi selektiert.

Wenn du auch so ein "Anker" machen willst, machste einfach ein neues "GrafikObjekt" (z.B. Graphics2D) und zeichnest es "nebendran" (das Rechteck hat ja Koordinaten und Abmessungen).

Wenn du das Objekt verschieben willst, gibt's auch noch einen MouseMotionListener.

Und hier noch eine empfehlenswerte Lektüre:
http://docs.oracle.com/javase/tutorial/uiswing/painting/

Gruss
slowy
 
Zurück