Wie Sie das Shapemaker-Programm in Java verwenden

Das Programm Shapemaker setzt auf eine sehr nützliche Technik für alle Java-Programm, das mit mehr als ein paar Formen arbeitet. Statt zu schaffen und jede Form separat in der Zeichnung Farbe Verfahren, speichert das Programm die Formen in eine Anordnungsliste Objekt vom Typ Gestalten. Die Formen sind in der erstellte paintcomponent Konstruktor, so dass der Code, der die Formen erzeugt wird nur einmal ausgeführt.

Dann wird in der Farbe Verfahren, eine verbesserte für Schleife wird verwendet, um jede Form in der zu zeichnen Anordnungsliste. Diese Technik ist besonders praktisch für Programme, die der Benutzer Formen zeichnen lassen. Jedes Mal, wenn der Benutzer eine neue Form zieht, fügen Sie einfach die Form der Anordnungsliste. Immer dann, wenn die Farbe Methode aufgerufen wird, werden alle Formen gezeichnet werden.

import javax.swing. * - Import java.awt.event. * - import java.awt. * - Import java.awt.geom. * - import java.util. * - öffentliche Klasse Shapemaker erweitert JFrame {public static void main ( String [] args) {new Shapemaker () -} public Shapemaker () {this.setSize (300, 300) -this.setTitle ( "Shape Maker") - this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) -this.add (neu PaintSurface (), BorderLayout.CENTER) -this.setVisible (true) -} private Klasse PaintSurface erweitert JComponent {Arraylist Formen = new Arraylist() -Point Start, EndDrag-Form gefunden = null öffentliche PaintSurface () {Form s - // ein Rechtecke = new Rectangle2D.Float (10, 10, 60, 80) -shapes.add (en) - // a abgerundete Rechtecke = new RoundRectangle2D.Float (110, 10, 80, 80,10, 10) -shapes.add (en) - // eine abgerundete Rechtecke = new RoundRectangle2D.Float (210, 10, 60, 80, 50, 75 ) -shapes.add (en) - // a Kreise = new Ellipse2D.Float (10, 110, 80, 80) -shapes.add (en) - // ein Ellipsen = new Ellipse2D.Float (110, 110, 80 , 40) -shapes.add (en) - // weitere Ellipsen = new Ellipse2D.Float (210, 110, 40, 80) -shapes.add (en) - // ein Bögen = new Arc2D.Float (10, 210 , 80, 80, 90, 90, Arc2D.OPEN) -shapes.add (en) - // weitere Bögen = new Arc2D.Float (110, 210, 80, 80, 0, 180, Arc2D.CHORD) -Formen. (e) - // weitere Bögen = new Arc2D.Float (210, 210, 80, 80, 45, 90, Arc2D.PIE) -shapes.add (en) -} public void paint (Graphics g) {Graphics2D g2 = (Graphics2D) g - // einschalten antialiasingg2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON)-// zeichnen Hintergrund gridg2.setPaint (Color.LIGHT_GRAY) -für (int i = 0- i lt; (GetSize) breiten- i + = 10) g2.draw (neu Line2D.Float (i, 0, i, getSize () Höhe.).) - For (int i = 0-i lt; . GetSize () höhen- i + = 10) g2.draw (neu Line2D.Float (0, i, getSize () Breite, i.)) - // Alle Formen in der Anordnung zeichnen listg2.setColor (Color.BLACK ) -g2.setStroke (neue Basic (2)) - für (Shape s: Formen) g2.draw (en) -}}}

Menü