Rotieren, skalieren und verschieben auf einem JPanel

Aus Byte-Welt Wiki
Version vom 22. Dezember 2018, 11:06 Uhr von L-ectron-X (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springenZur Suche springen

Man wünscht es sich immer wieder mal, und wenn man es "mal schnell bräuchte" macht man es meistens "mal schnell" (und schmeißt es dann weg...), deswegen habe ich mal versucht, es so zu machen, dass man es wiederverwenden kann: Ein Panel, mit dem man das gezeichnete verschieben, rotieren und skalieren kann.

ViewerScreenshot01.png

Das geht an sich erstmal recht einfach (und tatsächlich ist das jetzt ziemlich genau das, was ich vor 3 Jahren mal woanders als Foren-Antwort geschrieben hatte), aber der Teufel steckt im Detail und den ganzen Freiheitsgraden, die es da gibt, und die man erstmal nicht unbedingt bedenkt.

Auch das Aktuelle ist noch nicht so weit konfigurierbar, wie man es sich (nahe liegender Weise) wünschen würde. Aber spätestens, wenn man den Wunsch hat, über die API zu bestimmen, wie schnell sich das gezeichnete bei einem Mouse-Drag denn dreht, könnte man auch sagen: Schreib dir deinen eigenen MouseMotionListener dafür. Im Moment gibt es einige "Standard-MouseControls", die so weit ihren Zweck erfüllen sollten.

Das Ganze liegt unter https://github.com/javagl/Viewer

--Marco13 22.07.2015, 20:40