2012-04-07 7 views
0

Wie können wir die Formen in Java zeichnen, wie wir es in Farbe tun?Mit Maus gesteuerte Formzeichnung

Zum Beispiel, wenn ich das Rechteck dieser Befehl zeichnen wollen wird es zeichnen:

g2.fill3DRect(mt, mf, 45, 45, true); 

Aber wie kann ich erhöhen die oder die Größe eines Objekts verringern oder während der Laufzeit Form Maus wie wir in Farbe?

+0

Seitliche Anmerkung. In der Regel empfehlen die Benutzer das Überschreiben von 'paint()' oder 'paintComponent()' und das Verwenden dieses 'Graphics'-Objekts zum Zeichnen. Hier sind zwei Beispiele ([1] (http://stackoverflow.com/a/10055672/418556), [2] (http://stackoverflow.com/a/10055306/418556)), die stattdessen eine "BufferedImage" verwenden . Wir können das Grafikobjekt direkt aus dem Bild holen, um 'Custom Painting' zu machen. –

Antwort

1

mouseUp eine mouse listener Verwenden Sie die Position der Maus zu erhalten, nachdem sie gedrückt wurde. das heißt

g2.fill3DRect(mt, mf, mouse.getX(), mouse.getY(), true); 

aber den Bildschirm löscht, indem Sie ein Rechteck über den gesamten Bildschirm vor jeder Ziehung zeichnen, so dass es zur gleichen Zeit nicht eine Million Rechtecken ist. Dies ist natürlich das grundlegendste Beispiel. In Doppelpufferung und Übung schauen.

0

Implementieren Sie ein Shape-Objekt, das die Attribute der Form enthält.

Ihr Panel sollte eine Liste von Formen verwalten, die es bei Bedarf zeichnet. Es kann auch eine Form an die Maus angehängt werden.

dann einen Mouselistener zu Ihrem Panel registrieren, die wird:

  • Update Ihre Form und die Platte neu zu zeichnen, wenn Sie die Maus bewegen.
  • schafft eine neue Form, wenn Sie mousedown
  • gibt die Form, wenn Sie