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

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

Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 1 Capítulo 4 – Applets e Gráficos Applets e Gráficos Capítulo 4.

Apresentações semelhantes


Apresentação em tema: "Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 1 Capítulo 4 – Applets e Gráficos Applets e Gráficos Capítulo 4."— Transcrição da apresentação:

1 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Applets e Gráficos Capítulo 4

2 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Aplicações em modo texto: – Input do teclado – Programação mais simples Aplicações em modo gráfico: – Input do teclado ou rato – Utiliza componentes gráficas como botões, menus, etc. – Consegue mostrar gráficos Tipos de Programas em Java

3 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Applets Pode-se fazer download de um Servidores Web Executam dentro de um browser Independentes da plataforma (Windows, Mac, Linux, Solaris Necessitam do Java VM Problema de segurança: um applet é executado na máquina local

4 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Esqueleto de um Applet public class MyApplet extends Applet { public void init() { // initializations go here... } public void paint(Graphics g) { Graphics2D g2 = (Graphics2D)g; // painting instructions go here... } }

5 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Program RectangleApplet.java import java.applet.Applet; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; public class RectangleApplet extends Applet { public void paint(Graphics g) { // recover Graphics2D Graphics2D g2 = (Graphics2D)g; // construct a rectangle and draw it Rectangle cerealBox = new Rectangle(5, 10, 20, 30); g2.draw(cerealBox);

6 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos // move rectangle 15 units sideways and 25 units down cerealBox.translate(15, 25); // draw moved rectangle g2.draw(cerealBox); } } // End Class

7 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Formas Gráficas Rectangle2D.Double Ellipse2D.Double Line2D.Double Point2D.Double Exemplo: Ellipse2D.Double egg = new Ellipse2D.Double(5,10,15,20); g2.draw(egg);

8 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Sistema de Coordenadas de uma Elipse

9 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Cores Construtor de cores: Color magenta = new Color(1.0F, 0.0F, 1.0F); Cores pré-definidas, ex. Color.red Definir uma cor no contexto gráfico: g2.setColor(magenta); Desenhar ou preencher: g2.draw(egg); g2.fill(egg);

10 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Fontes (1) Características das fontes: – Nome (ex. "Times Roman", "Helvetica") – Estilo (plain, bold, italic, bold + italic) – Tamanho (ex. 12) Font f = new Font("Serif", Font.BOLD, 36) ;

11 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Fontes (2) Definir uma fonte no contexto gráfico: g2.setFont(f); Desenhar uma String: g2.drawString("Hello", 50, 100);

12 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Medir o Texto Ascent = tamanho acima do baseline Descent = tamanho abaixo do baseline Exemplo: FontRenderContext context = g2.getFontRenderContext(); TextLayout layout = new TextLayout(Applet, f, context); float height = layout.getAscent() + layout.getDescent(); float width = layout.getAdvance();

13 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Medição do texto

14 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Input de Texto Exemplo: String input = JOptionPane.showInputDialog (Insert your age); Conversão de uma String em número inteiro: int age = Integer.parseInt(input); Por agora, coloque estes comandos no método init de um applet

15 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Exemplo de uma caixa de diálogo

16 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Capítulo 4 Programas para as teóricas

17 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Program FontApplet.java import java.applet.Applet; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Font; import java.awt.font.FontRenderContext; import java.awt.font.TextLayout; public class FontApplet extends Applet { public void paint(Graphics g) { Graphics2D g2 = (Graphics2D)g; // select the font into the graphics context final int HUGE_SIZE = 48; Font hugeFont = new Font("Serif", Font.BOLD, HUGE_SIZE); g2.setFont(hugeFont); String message ="Applet";

18 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos // create a text layout to measure the string FontRenderContext context = g2.getFontRenderContext(); TextLayout layout = new TextLayout(message, hugeFont, context); // measure the message width and height float xMessageWidth = layout.getAdvance(); float yMessageHeight = layout.getAscent() + layout.getDescent(); // center the message in the window float xLeft = 0.5F * (getWidth()- xMessageWidth); float yTop = 0.5F * (getHeight()- yMessageHeight); float yBase = yTop + layout.getAscent(); g2.drawString(message, xLeft, yBase); } } // End Class

19 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Output do Programa FontApplet.java

20 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Program CarDrawer.java import java.applet.Applet; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.geom.Point2D; public class CarDrawer extends Applet { public void paint(Graphics g) { Graphics2D g2 = (Graphics2D)g; Rectangle body = new Rectangle(100, 110, 60, 10); Ellipse2D.Double frontTire = new Ellipse2D.Double(110, 120, 10, 10); Ellipse2D.Double rearTire = new Ellipse2D.Double(140, 120, 10, 10);

21 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Point2D.Double r1 = new Point2D.Double(110, 110); // the bottom of the front windshield Point2D.Double r2 = new Point2D.Double(120, 100); // the front of the roof Point2D.Double r3 = new Point2D.Double(140, 100); // the rear of the roof Point2D.Double r4 = new Point2D.Double(150, 110); // the bottom of the rear windshield Line2D.Double frontWindshield = new Line2D.Double(r1, r2); Line2D.Double roofTop = new Line2D.Double(r2, r3); Line2D.Double rearWindshield = new Line2D.Double(r3, r4);

22 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos g2.draw(body); g2.draw(frontTire); g2.draw(rearTire); g2.draw(frontWindshield); g2.draw(roofTop); g2.draw(rearWindshield); g2.drawString("JavaMobile 1.2ti", 100, 150); } } // End Class

23 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Output do Programa CarDrower.java

24 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Program ColorSelect.java import java.applet.Applet; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import javax.swing.JOptionPane; public class ColorSelect extends Applet { public void init() { String input; // ask the user for red, green, blue values input = JOptionPane.showInputDialog("red:"); float red = Float.parseFloat(input); input = JOptionPane.showInputDialog("green:"); float green = Float.parseFloat(input); input = JOptionPane.showInputDialog("blue:"); float blue = Float.parseFloat(input); fillColor_ = new Color(red,green,blue); }

25 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos public void paint(Graphics g) { final int SQUARE_LENGTH = 100; Graphics2D g2 = (Graphics2D)g; // select color into graphics context g2.setColor(fillColor_); // construct and fill a square whose center is // the center of the window Rectangle square = new Rectangle( (getWidth() - SQUARE_LENGTH) / 2, (getHeight() - SQUARE_LENGTH) / 2, SQUARE_LENGTH, SQUARE_LENGTH); g2.fill(square); } private Color fillColor_; } // End Class

26 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Program Phoenix.java //Class UnitConverter import java.awt.geom.Line2D; import java.awt.geom.Point2D; import java.awt.geom.RectangularShape; public class UnitConverter { public UnitConverter(double x1, double x2, double y1, double y2, double w, double h) { xleft_ = x1; xright_ = x2; ybottom_ = y1; ytop_ = y2; width_ = w; height_ = h; }

27 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos public Point2D convert(Point2D p) { double x = xToPixel(p.getX()); double y = yToPixel(p.getY()); p.setLocation(x, y); return p; } public Line2D convert(Line2D l) { double x1 = xToPixel(l.getX1()); double y1 = yToPixel(l.getY1()); double x2 = xToPixel(l.getX2()); double y2 = yToPixel(l.getY2()); l.setLine(x1, y1, x2, y2); return l; }

28 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos public RectangularShape convert(RectangularShape r) { double xmin = xToPixel(r.getMinX()); double ymin = yToPixel(r.getMinY()); double xmax = xToPixel(r.getMaxX()); double ymax = yToPixel(r.getMaxY()); r.setFrameFromDiagonal(xmin, ymin, xmax, ymax); return r; } public double xToPixel(double x) { return (x – xleft_) * (width_ - 1) / (xright_ - xleft_); } public double yToPixel(double y) { return (y – ytop_) * (height_ - 1) / (ybottom_ - ytop_); }

29 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos public double pixelToX(double px) { return xleft_ + px * (xright_ - xleft_) / (width_ - 1); } public double pixelToY(double py) { return ytop_ + py * (ybottom_ - ytop_) / (height_ - 1); } private double xleft_; private double xright_; private double ytop_; private double ybottom_; private double width_; private double height_; }

30 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Program Phoenix.java //Class Phoenix import java.applet.Applet; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; public class Phoenix extends Applet { public void paint(Graphics g) { Graphics2D g2 = (Graphics2D)g; month_ = 0; units_ = new UnitConverter(0, 12, 0, 40, getWidth(), getHeight()); final int JAN_TEMP = 11; final int FEB_TEMP = 13; final int MAR_TEMP = 16; final int APR_TEMP = 20; final int MAY_TEMP = 25; final int JUN_TEMP = 31; final int JUL_TEMP = 33; final int AUG_TEMP = 32; final int SEP_TEMP = 29;

31 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos final int OCT_TEMP = 23; final int NOV_TEMP = 16; final int DEC_TEMP = 12; drawBar(g2, JAN_TEMP); drawBar(g2, FEB_TEMP); drawBar(g2, MAR_TEMP); drawBar(g2, APR_TEMP); drawBar(g2, MAY_TEMP); drawBar(g2, JUN_TEMP); drawBar(g2, JUL_TEMP); drawBar(g2, AUG_TEMP); drawBar(g2, SEP_TEMP); drawBar(g2, OCT_TEMP); drawBar(g2, NOV_TEMP); drawBar(g2, DEC_TEMP); }

32 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos public void drawBar(Graphics2D g2, int temperature) { // construct rectangle for this month and temperature Rectangle rect = new Rectangle(month_, 0, 1, temperature); // convert to pixel coordinates and draw units_.convert(rect); g2.draw(rect); month_ ++; } private int month_; private UnitConverter units_; } // End Class

33 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 4 – Applets e Gráficos Output do Programa Phoenix.java


Carregar ppt "Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 1 Capítulo 4 – Applets e Gráficos Applets e Gráficos Capítulo 4."

Apresentações semelhantes


Anúncios Google