A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Java 2D Marco Antonio. Java2D Conjunto de classes para trabalhar com gráficos e imagens. A principal classe desta API é JComponent. Com esta classe é.

Apresentações semelhantes


Apresentação em tema: "Java 2D Marco Antonio. Java2D Conjunto de classes para trabalhar com gráficos e imagens. A principal classe desta API é JComponent. Com esta classe é."— Transcrição da apresentação:

1 Java 2D Marco Antonio

2 Java2D Conjunto de classes para trabalhar com gráficos e imagens. A principal classe desta API é JComponent. Com esta classe é possível criar componentes personalizados para suas aplicações gráficas.

3 ComponenteGeometrico package com.java2d.geometria; import java.awt.*; import java.awt.geom.*; import javax.swing.*; @SuppressWarnings("serial")‏ public class ComponenteGeometrico extends JComponent { private boolean solido; private Color cor; private double y; private double x; public ComponenteGeometrico(boolean solido, Color cor, int x, int y) { this.solido = solido; this.cor = cor; this.x = x; this.y = y; } @Override protected void paintComponent(Graphics g) { // super.paintComponent(g); // Graphics2D grafico = (Graphics2D) g; // grafico.setPaint(cor); Rectangle2D retangulo = new Rectangle2D.Double(x, y, 50, 50); if (solido) { grafico.fill(retangulo); } else { grafico.draw(retangulo); }

4 TelaDeTeste package com.java2d.geometria; import java.awt.*; import javax.swing.*; @SuppressWarnings("serial")‏ public class TelaDeTeste extends JFrame { public TelaDeTeste() { // ComponenteGeometrico componente1 = new ComponenteGeometrico(true, Color.GRAY, 10, 10); getContentPane().add(componente1); // setSize(300, 200); setVisible(true); } public static void main(String[] args) { new TelaDeTeste(); }

5 ComponenteGeometrico Acrescente os métodos de acesso como no exemplo: public void setX(double x) { this.x = x; } public void setY(double y) { this.y = y; }

6 TesteMovimentacaoCompGeo package com.java2d.geometria; import java.awt.*; import javax.swing.*; @SuppressWarnings("serial") public class TesteMovimentacaoCompGeo extends JFrame { ComponenteGeometrico componente1; public TesteMovimentacaoCompGeo() { componente1 = new ComponenteGeometrico(true, Color.GRAY, 10, 10); // getContentPane().add(componente1); // setSize(300, 200); setVisible(true); } public void movimentaComponente() { int i = 0; while (true) { i++; componente1.setX(10 + i); repaint(); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } public static void main(String[] args) { new TesteMovimentacaoCompGeo().movimentaComponente(); }

7 TelaDeTeste package com.java2d.geometria; import java.awt.*; import javax.swing.*; @SuppressWarnings("serial")‏ public class TelaDeTeste extends JFrame { public TelaDeTeste() { // ComponenteGeometrico componente1 = new ComponenteGeometrico(true, Color.GRAY, 10, 10); ComponenteGeometrico componente2 = new ComponenteGeometrico(false, Color.BLUE, 10, 10); componente1.setBorder(BorderFactory.createLoweredBevelBorder()); componente2.setBorder(BorderFactory.createLoweredBevelBorder()); getContentPane().setLayout(new GridLayout(1, 0)); getContentPane().add(componente1); getContentPane().add(componente2); // / setSize(300, 200); setVisible(true); } public static void main(String[] args) { new TelaDeTeste(); }

8 Circulo package com.java2d.geometria; import java.awt.*; import java.awt.geom.*; import javax.swing.*; @SuppressWarnings("serial")‏ public class Circulo extends JComponent { protected Color cor; protected int x; protected int y; protected int raio; public Circulo(Color cor, int x, int y, int raio) { this.cor = cor; this.x = x; this.y = y; this.raio = raio; } @Override protected void paintComponent(Graphics graficos) { super.paintComponent(graficos); Graphics2D g = (Graphics2D) graficos; g.setColor(cor); Ellipse2D.Float circulo = new Ellipse2D.Float(x - raio, y - raio, raio * 2, raio * 2); g.fill(circulo); }

9 TesteCirculo package com.java2d.geometria; import java.awt.*; import javax.swing.*; @SuppressWarnings("serial")‏ public class TesteCirculo extends JFrame { public static void main(String[] args) { new TesteCirculo(); } TesteCirculo() { // setSize(600, 400); // Circulo circulo = new Circulo(Color.BLUE, getWidth() / 2, getHeight() / 2, 80); getContentPane().add(circulo); // setVisible(true); // }

10 Retangulo package com.java2d.geometria; import java.awt.*; import java.awt.geom.*; import javax.swing.*; public class Retangulo extends JComponent { protected Color cor; protected int x; protected int y; protected int largura; protected int altura; protected double angulo; public void setAngulo(double angulo) { this.angulo = angulo; } public Retangulo(Color cor, int x, int y, int largura, int altura) { this.cor = cor; this.x = x; this.y = y; this.largura = largura; this.altura = altura; } protected void paintComponent(Graphics graficos) { super.paintComponent(graficos); Graphics2D g = (Graphics2D) graficos; // g.clearRect(0, 0, 600, 400); g.setColor(cor); Rectangle2D.Float retangulo = new Rectangle2D.Float(x, y, largura, altura); g.draw(retangulo); // }

11 Retangulo public void limpaTela() { Graphics2D g = (Graphics2D) getGraphics(); g.clearRect(0, 0, Toolkit.getDefaultToolkit().getScreenSize().width, Toolkit.getDefaultToolkit().getScreenSize().height); }

12 TesteRetangulo package com.java2d.geometria; import java.awt.*; import javax.swing.*; @SuppressWarnings("serial")‏ public class TesteRetangulo extends JFrame { Retangulo retangulo; TesteRetangulo() { // setSize(600, 400); // retangulo = new Retangulo(Color.BLUE, getWidth() / 2, getHeight() / 2, 40, 140); getContentPane().add(retangulo); // setVisible(true); // } public static void main(String[] args) { new TesteRetangulo(); }

13 CirculoListener package com.java2d.geometria; import java.awt.*; import java.awt.event.*; import javax.swing.*; @SuppressWarnings("serial")‏ public class CirculoListener extends Circulo implements MouseListener { public CirculoListener(Color cor, int x, int y, int raio) { super(cor, x, y, raio); addMouseListener(this); } @Override public void mouseClicked(MouseEvent e) { Point ponto = e.getPoint(); String mensagem = "Coordenada (x,y): " + ponto.x + ", " + ponto.y; JOptionPane.showMessageDialog(null, mensagem); } @Override public void mouseEntered(MouseEvent e) { } @Override public void mouseExited(MouseEvent e) { } @Override public void mousePressed(MouseEvent e) { } @Override public void mouseReleased(MouseEvent e) { }

14 TesteCirculoListener package com.java2d.geometria; import java.awt.*; import javax.swing.*; @SuppressWarnings("serial")‏ public class TesteCirculoListener extends JFrame { public static void main(String[] args) { new TesteCirculoListener(); } TesteCirculoListener() { // setSize(600, 400); // CirculoListener circulo = new CirculoListener(Color.BLUE, getWidth() / 2, getHeight() / 2, 80); getContentPane().add(circulo); // setVisible(true); // }

15 PaintBrush package com.java2d.geometria; import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; @SuppressWarnings("serial")‏ public class PaintBrush extends JComponent implements MouseListener { private Collection pontos; private int LARGURA = 8; private int ALTURA = 8; public PaintBrush() { addMouseListener(this); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); for (Point ponto : getPontos()) { g.fillOval(ponto.x - 5, ponto.y - 5, LARGURA, ALTURA); } public void mouseClicked(MouseEvent e) { getPontos().add(e.getPoint()); repaint(); } public Collection getPontos() { if (pontos == null) { pontos = new ArrayList (); } return pontos; } //{... demais métodos da interface} }

16 TestePaintBrush package com.java2d.geometria; import javax.swing.*; @SuppressWarnings("serial")‏ public class TestePaintBrush extends JFrame { public static void main(String[] args) { new TestePaintBrush(); } TestePaintBrush() { PaintBrush paint = new PaintBrush(); getContentPane().add(paint); setSize(800, 600); setVisible(true); }

17 Atividades Adicione as seguintes opções ao Paint. –Combobox com as cores azul, branco e verde para o ponto desenhado e para o fundo de tela. –Borracha. –Opção de criar uma linha arrastando o mouse clicado sobre a tela.

18 Atividades Recrie o jogo snake.


Carregar ppt "Java 2D Marco Antonio. Java2D Conjunto de classes para trabalhar com gráficos e imagens. A principal classe desta API é JComponent. Com esta classe é."

Apresentações semelhantes


Anúncios Google