Mais conteúdo relacionado
Semelhante a Programação e Estruturas de Dados - Lic. Design e Multimédia (20)
Programação e Estruturas de Dados - Lic. Design e Multimédia
- 1. Java
Gráficos em 2D
Amílcar Cardoso
Dep. Engª. Informática
Universidade de Coimbra
http://www.dei.uc.pt/amilcar
amilcar@dei.uc.pt
© Amílcar Cardoso, 2012
- 2. Aplicações versus Applets
Aplicação
Pode ser executada autonomamente
Applet
Tem que ser executada num Browser ou num “Applet
viewer”
Para integrar numa página HTML:
HTML:<TITLE>Applet title</TITLE>
<APPLET CODE=Nome.class WIDTH=100 HEIGHT=100>
</APPLET>
Tutorial interessante: http://www.dgp.toronto.edu/~mjmcguff/learn/java/
Programação e Estruturas de Dado 2
© Amílcar Cardoso, 2012
- 3. Ecrã gráfico
Coordenadas:
x
(0, 0)
y
Em Java: g.drawLine(10, 50, 35, 80);
Comando (método): ...entre o
...e o ponto (35, 80)
desenhar uma linha... ponto (10, 50)...
Programação e Estruturas de Dado 3
© Amílcar Cardoso, 2012
- 4. Desenho numa Applet
import java.awt.*; Importar bibliotecas
import java.applet.Applet;
classe “linha” é sub-classe
public class linha extends Applet { de Applet
public void paint (Graphics g) {
g.drawLine (0,0,100,100);
Desenha uma linha entre
} os pontos (0,0) e (100,100)
}
g representa a área de desenho
Numa Applet para desenho,
a execução começa no método paint
Programação e Estruturas de Dado 4
© Amílcar Cardoso, 2012
- 5. Classe Graphics
Permite definir Objetos Gráficos
Principais atributos descrevem:
cor de fundo
cor do bordo
fonte para texto
translação
Objeto onde é feito o desenho
Programação e Estruturas de Dado 5
© Amílcar Cardoso, 2012
- 6. Alguns métodos gráficos
retângulo oval
g. drawRect(15, 15, 40, 30); g. drawOval(15, 15, 40, 30);
linha retângulo arredondado
g.drawLine(15, 10, 36, 40); g. drawRoundRect(15, 15, 40, 30, 5, 5);
Programação e Estruturas de Dado 6
© Amílcar Cardoso, 2012
- 7. Mais métodos gráficos
drawArc (int x, int y, int w, int h, int st, int arc)
Ex.: g.drawArc (10, 20, 60, 50, -45, 90);
drawString (String s, int x, int y)
Ex.: g.drawString ("Olá!", 10, 40);
setColor (Color c)
Ex.: g.setColor (Color.blue);
Cores pré-definidas: black, blue, cyan, darkGray, gray, green,
lightGray, magenta, orange, pink, red, white, yellow
Programação e Estruturas de Dado 7
© Amílcar Cardoso, 2012
- 8. Alguns métodos gráficos
fillRect (int x, int y, int w, int h)
fillOval (int x, int y, int w, int h)
fillArc (int x, int y, int w, int h, int st, int arc)
Ex.:
g.setColor (Color.yellow);
g.fillRect (10, 20, 90, 50);
g.setColor (Color.black);
g.drawRect (10, 20, 90, 50);
(10, 20)
50
90
Programação e Estruturas de Dado 8
© Amílcar Cardoso, 2012
- 9. Dimensão da janela
Para se definir a dimensão da janela da Applet:
int apWidth=200, apHeight=200;
public void paint(Graphics g) {
this.setSize(apWidth, apHeight);
(...)
método da classe Applet
Programação e Estruturas de Dado 9
© Amílcar Cardoso, 2012
- 10. Dimensão da janela
Para se obter a dimensão da janela da Applet:
this: classe a que pertence
o método que está a correr
public void paint(Graphics g) { (a Applet)
Dimension appletSize = this.getSize();
int appletHeight = appletSize.height;
getSize é um método da Applet
int appletWidth = appletSize.width;
Objeto appletSize da
classe Dimension
(...)
height e width são dois
atributos do objeto
appletSize
Programação e Estruturas de Dado 10
© Amílcar Cardoso, 2012
- 11. Exemplo
Desenhar esta figura:
50
100
150
50 100 150
Programação e Estruturas de Dado 11
© Amílcar Cardoso, 2012
- 12. Código
public class Figura extends Applet {
int apWidth=200, apHeight=200;
public void paint(Graphics g) {
this.setSize(apWidth, apHeight);
g.setColor(cinza1);
Color cinza1 = new Color(200,200,200); g.fillOval(0,0,200,200);
Color cinza2 = new Color(150,150,150); g.setColor(cinza2);
Color cinza3 = new Color(100,100,100); g.fillOval(0,0,150,150);
Color cinza4 = new Color(60,60,60); g.setColor(cinza3);
g.fillOval(0,0,100,100);
g.setColor(cinza4);
g.fillOval(0,0,50,50);
}
Programação e Estruturas de Dado 12
© Amílcar Cardoso, 2012