Como usar o programa shapemaker em java

Video: Curso de Java 12: Lendo dados do teclado usando a classe Scanner

O programa ShapeMaker se baseia em uma técnica muito útil para qualquer programa de Java que trabalha com mais de algumas formas. Em vez de criar e desenho cada forma separadamente no pintura método, o programa armazena as formas em uma ArrayList o objecto do tipo Forma. As formas são criadas no paintComponent construtor, então o código que cria as formas é executado apenas uma vez.

Video: Como usar uma webcam em Java



Em seguida, no pintura método, uma melhorada para laço é usada para desenhar cada forma no ArrayList. Esta técnica é especialmente útil para programas que permitem ao usuário desenhar formas. Cada vez que o usuário desenha uma nova forma, você acabou de adicionar a forma para a ArrayList. Então, sempre que a pintura método é chamado, todas as formas são desenhadas.

import javax.swing. * - import java.awt.event * - import java.awt. * -. java.awt.geom importação. * - import java.util. * - classe pública ShapeMaker estende JFrame {public static void main ( String [] args) {new ShapeMaker () -} ShapeMaker pública () {this.setSize (300, 300) -this.setTitle ("forma Criador") -this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) -this.add (novo PaintSurface (), BorderLayout.CENTER) -this.setVisible (true) -} PaintSurface classe privada estende JComponent {ArrayList formas = new ArrayList() -Point startDrag, endDrag-Shape encontrado = null-pública PaintSurface () {Forma s - // um retângulos = new Rectangle2D.Float (10, 10, 60, 80) -shapes.add (s) - // um rectângulos arredondados = novo RoundRectangle2D.Float (110, 10, 80, 80,10, 10) -shapes.add (s) - // a rectângulos arredondados = novo RoundRectangle2D.Float (210, 10, 60, 80, 50, 75 ) -shapes.add (s) - // a nova círculos = Ellipse2D.Float (10, 110, 80, 80) -shapes.add (s) - // reticências = novo Ellipse2D.Float (110, 110, 80 , 40) -shapes.add (s) - // outro elipses = novo Ellipse2D.Float (210, 110, 40, 80) -shapes.add (s) - // uma arcos = novo Arc2D.Float (10, 210 , 80, 80, 90, 90, Arc2D.OPEN) -shapes.add (s) - // mais arcos = novo Arc2D.Float (110, 210, 80, 80, 0, 180, Arc2D.CHORD) -shapes. adicionar (s) - // outros arcos = new Arc2D.Float (210, 210, 80, 80, 45, 90, Arc2D.PIE) -shapes.add (s) -} public void paint (Graphics g) {Graphics2D g2 = (Graphics2D) g - // ligar antialiasingg2.setRenderingHint (RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON) - // desenhar gridg2.setPaint fundo (Col or.LIGHT_GRAY) -para (int i = 0- i lt; getSize () width- i + = 10) g2.draw (novo Line2D.Float (i, 0, i, getSize () de altura.)) -. para (int i = 0- i lt; . GetSize () em altura i + = 10) g2.draw (novo Line2D.Float (0, i, getSize () largura, i.)) - // desenha todas as formas da matriz listg2.setColor (Color.BLACK ) -g2.setStroke (novo BasicStroke (2)) - para (Forma s: formas) g2.draw (s) -}}}

Publicações relacionadas