Cómo utilizar el programa en java shapemaker

Video: Tutorial Java - 1. Introducción y Primer Programa "Hola Mundo"

El programa ShapeMaker se basa en una técnica muy útil para cualquier programa Java que funciona con más de unas pocas formas. En lugar de crear y dibujar cada forma por separado en el pintar método, el programa almacena las formas en una Lista de arreglo objeto de tipo Forma. Las formas se crean en el paintComponent constructor, por lo que el código que crea las formas se ejecuta sólo una vez.

Video: Aprende a programar en JAVA desde cero [Parte1] Instalación y Hola mundo

Luego, en el pintar método, una mejorada para bucle se utiliza para dibujar cada forma en el Lista de arreglo. Esta técnica es especialmente útil para los programas que permiten al usuario dibujar formas. Cada vez que el usuario dibuja una nueva forma, que acaba de añadir la forma de la Lista de arreglo. Entonces, cada vez que el pintar método se llama, todas las formas se dibujan.

javax.swing importación * -. java.awt.event importación * - import java.awt. * -. java.awt.geom importación * - import java.util. * -. ShapeMaker clase pública se extiende JFrame {public void ( string [] args) {nueva ShapeMaker () -} ShapeMaker pública () {this.setSize (300, 300) -this.setTitle ("forma fabricante") -this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) -this.add (nueva PaintSurface (), BorderLayout.CENTER) -this.setVisible (verdadero) -} PaintSurface clase privada se extiende JComponent {ArrayList formas = new ArrayList() -Point startDrag, encontrado endDrag-Shape = null-público PaintSurface () {Shape s - // unos rectángulos = new Rectangle2D.Float (10, 10, 60, 80) -shapes.add (s) - // una rectángulos redondeados = new RoundRectangle2D.Float (110, 10, 80, 80,10, 10) -shapes.add (s) - // a rectángulos redondeados = new RoundRectangle2D.Float (210, 10, 60, 80, 50, 75 ) -shapes.add (s) - // a círculos = new Ellipse2D.Float (10, 110, 80, 80) -shapes.add (s) - // un elipses = new Ellipse2D.Float (110, 110, 80 , 40) -shapes.add (s) - // otro elipses = new Ellipse2D.Float (210, 110, 40, 80) -shapes.add (s) - // un arcos = new Arc2D.Float (10, 210 , 80, 80, 90, 90, Arc2D.OPEN) -shapes.add (s) - // otros arcos = nuevo Arc2D.Float (110, 210, 80, 80, 0, 180, Arc2D.CHORD) -shapes. añadir (s) - // otros arcos = nuevo Arc2D.Float (210, 210, 80, 80, 45, 90, Arc2D.PIE) -shapes.add (s) -} public void paint (Graphics g) {g2 Graphics2D = (Graphics2D) g - // encender antialiasingg2.setRenderingHint (RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON) - // dibujar gridg2.setPaint fondo (Col or.LIGHT_GRAY) -para (int i = 0- i lt; getSize () anchura- i + = 10) g2.draw (nuevo Line2D.Float (i, 0, i, getSize () de altura.)) -. for (int i = 0- i lt; . GetSize () en altura i + = 10) g2.draw (nuevo Line2D.Float (0, i, getSize () ancho, i.)) - // extraer todas las formas de la matriz listg2.setColor (Color.BLACK ) -g2.setStroke (nueva BasicStroke (2)) - de (s Forma: formas) g2.draw (s) -}}}
Artículos Relacionados