Você está na página 1de 6

Aula sobre Applets

Thiago Henrique Braga Est gio em Doc ncia I a e Departamento de Ci ncia da Computacao - DCC e Instituto de Ci ncias Exatas - ICEx e Universidade Federal de Minas Gerais - UFMG
thiagohb@dcc.ufmg.br
1

Resumo. Disciplina: DCC003 - Algoritmos e Estrururas de Dados I Professor Supervisor: Helton F bio Matos a

1. Introducao
Um Applet e um programa escrito na linguagem Java que pode ser includo em uma p gina HTML, utilizando a tag <APPLET>. Quando voc utiliza um navegador com a a e tecnologia Java habilitada para visualizar uma p gina que contem um Applet, o c digo do a o Applet e transferido para o seu sistema e executado pela M quina Virtual Java (JVM) do a navegador. Esta aula ter uma explicacao r pida sobre os elementos b sicos de HTML e em sea a a guida abordar os conceitos de Applets atrav s de exemplos. Por ultimo, e proposto um a e exerccio para praticar o que foi aprendido.

2. HTML
HTML e a sigla de Hypertext Markup Language (linguagem de marcacao de hipertexto). Essa linguagem consiste em um conjunto de marcas ou tags usadas para denir a apar ncia e e funcionalidade das p ginas Web, exibidas em um navegador. Ou seja, e com o HTML a que se constr i as p ginas pelas quais voc navega na Internet. Um documento formatado o a e com c digo HTML e chamado de documento HTML. Um documento HTML precisa ter o um formato adequado para ser reconhecido e interpretado corretamente pelo navegador. O formato b sico e: a
Listing 1: DocumentoHTMLBasico.html <HTML> <HEAD> <TITLE>Ttulo da pgina</TITLE> a </HEAD> <BODY> Contedo principal de uma pgina inserido aqui. u a e </BODY> </HTML>

Observe estes dois detalhes: as marcas de abertura cam entre os sinais de maior que e menor que <...>e as marcas de fechamento tamb m mas t m uma barra e e </...>antes do texto. Por exemplo, um documento HTML e aberto por <HTML> e fechado por </HTML>.

2.1. A Tag APPLET Para incluir um Applet em um p gina HTML deve usar a tag <APPLET>. A forma mais a simples desta tag possui a seguinte forma:
<APPLET CODE=AppletSubclass.class WIDTH=anInt HEIGHT=anInt> </APPLET>

Esta tag indica ao navegador para carregar o Applet AppletSubclass, exibindo-o na p gina em uma area com largura e altura especicada. a A tag <APPLET> possui outros atributos e um sub-elemento que serve para passar par metros a para um Applet. Uma descricao completa da tag <APPLET> pode ser encontrada em http://java.sun.com/docs/books/tutorial/applet/appletsonly/appletTag.html.

3. Applets
Applets s o objetos de uma subclasse de java.applet.Applet. Eles herdam v rios a a m todos de desenho e manipulacao de eventos de classes do AWT (Abstract Window e Toolkit) - pacote Java para produzir interfaces com o usu rio. O c digo de um Applet est a o a vinculado a um arquivo HTML e eles s o executados dentro de um painel. A seguir, ser a a mostrado como se cria um Applet simples. Depois, ser enfocado o ciclo de vida de um a Applet. 3.1. Criando um Applet Para construir um Applet deve-se seguir algumas regras, baseadas na orientacao a objetos da linguagem Java. Ser utilizado um exemplo simples para torna o entendimento mais a f cil. Considere o seguinte exemplo: a
Listing 2: PrimeiroApplet.java import java.applet.Applet; import java.awt.Graphics; public class PrimeiroApplet extends Applet { public void paint(Graphics g) { int h = getHeight() / 2; g.drawString("Meu primeiro Applet!", 50, h); } }

Esta classe est denindo o Applet PrimeiroApplet e desenhando na posicao (50, h) a da area disponvel para o Applet no documento HTML a String Meu primeiro Applet!, onde h e a metade da altura da area do Applet. As regras b sicas para a criacao de um Applet s o: a a 1. Crie uma nova classe que extenda a classe Applet. Para isto ser necess rio usar a a a seguinte importacao de classe: import java.applet.Applet. 2. Redena o m todo paint() para desenhar no painel gr co de um Applet. Usar e a a seguinte importacao de classe: import java.awt.Graphics. 3. Dena outros m todos auxiliares, caso seja necess rio. e a O Applet dever ser compilado e o arquivo .class dever ser colocado no mesmo a a diret rio onde estar a p gina HTML que conter uma tag para carregar o Applet. o a a a Para visualizar o funcionamento do primeiro Applet, foi criada uma p gina HTML chaa mada meuapplet.html, com o seguinte c digo: o

Listing 3: meuapplet.html <HTML> <HEAD> <TITLE>Meu primeiro Applet</TITLE> </HEAD> <BODY> Esta a pgina que contm uma tag para o meu primeiro Applet.<BR> e a e <APPLET CODE=PrimeiroApplet.class WIDTH=300 HEIGHT=200> </APPLET> </BODY> </HTML>

Para visualizar o Applet, basta abrir a p gina meuapplet.html em um navegador a Web. 3.2. M todos uteis de um objeto Graphics e O objeto Graphics passado como par metro pelo m todo paint(Graphics g) possui a e alguns m todos para desenhar na area gr ca do painel de um Applet. A origem de um e a ` objeto gr co e o canto superior a esquerda de um painel. Um objeto Graphics funciona a como uma m quina de estados e possui atributos que podem ser alterados, como por a exemplo: fonte, cor de fundo, cor de contorno, etc. Os principais m todos s o: e a void drawString(String str, int x, int y) Desenha a String str na posicao (x,y). void drawLine(int x1, int y1, int x2, int y2) Desenha uma linha do ponto (x1,y1) ao ponto (x2,y2). void drawRect(int x, int y, int width, int height) Desenha o contorno de um ret ngulo a partir de (x,y) com largura width e a altura height. void drawOval(int x, int y, int width, int height) Desenha o contorno de uma elipse a partir de (x,y) com largura width e altura height. void fillRect(int x, int y, int width, int height) Desenha um ret ngulo preenchido a partir de (x,y) com largura width e altura a height. void setColor(Color c) Faz a cor c ser a cor corrente para novos desenhos. Uma descricao completa da classe Graphics pode ser obtida em: http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Graphics.html. 3.3. Ciclo de vida de um Applet O navegador, ao exibir uma p gina HTML que contenha um Applet, introduz um ciclo de a vida aos mesmos. Primeiramente e invocado o m todo init() para inicializar o Applet. e Depois e chamado o m todo start(), quando a p gina HTML que cont m o Applet e e a e exibida. Para exibir o conte do gr co de um Applet o m todo paint() e invocado. Se u a e a p gina deixa de ser exibida, o m todo stop() e invocado e antes de destruir um Applet a e o m todo destroy() e chamado. A Figura 1 mostra o ciclo de vida dos Applets. e

Figura 1: Ciclo de Vida dos Applets

O c digo do Applet abaixo, pretende mostrar o ciclo de execucao de um Applet, o imprimindo no console sempre que um m todo e invocado. e
Listing 4: CicloVidaApplet.java import java.applet.Applet; import java.awt.Graphics; public class CicloVidaApplet extends Applet { private static int numInstances = 0; private int id; private String msg; public void init() { id = ++numInstances; System.out.println("Applet" + id +".init()."); msg = "init()... "; } public void start() { System.out.println("Applet" + id +".start()."); msg += "start()... "; } public void stop() { System.out.println("Applet" + id +".stop()."); msg += "stop()... "; } public void destroy() { System.out.println("Applet" + id +".destroy()."); msg += "destroy()."; } public void paint(Graphics g) { System.out.println("Applet" + id +".paint()."); g.drawString("Ciclo de vida do Applet!", 10, 50); g.drawString(msg, 10, 65); } }

3.4. Exerccio resolvido Escreva um Applet que leia 3 lados de um tri ngulo e verique: a se os tr s lados formam um Tri ngulo Equil tero, Is sceles ou Escaleno e a a o se os tr s lados n o formam um Tri ngulo e a a

A resposta do problema de ver ser impressa no Applet. Se os tr s lados formarem um a e ` tri ngulo, o Applet dever desenhar um tri ngulo de exemplo referente a classe que os tr s a a a e lados pertencer. Para visualizar o funcionamento, crie uma p gina HTML que contenha o a Applet criado e abra-a em um navegador da internet. Sugest o: utilize a classe JOptionPane para fazer a entrada de dados. a
Listing 5: TrianguloApplet.java import java.applet.Applet; import java.awt.Graphics; import javax.swing.JOptionPane; public class TrianguloApplet extends Applet { private int lado1, lado2, lado3; public void start() { lado1 = leiaLado(1); lado2 = leiaLado(2); lado3 = leiaLado(3); } public void paint(Graphics g) { int r = ehTriangulo(lado1, lado2, lado3); String m = "Os lados " + lado1 + ", " + lado2 + " e " + lado3 + " "; String t = ""; switch(r) { case 0: t = "no formam um Tringulo."; a a break; case 1: t = "formam um Tringulo Equiltero."; a a g.drawLine(50,200,250,200); g.drawLine(50,200,150,27); g.drawLine(250,200,150,27); break; case 2: t = "formam um Tringulo Issceles."; a o g.drawLine(100,200,200,200); g.drawLine(100,200,150,50); g.drawLine(200,200,150,50); break; case 3: t = "formam um Tringulo Escaleno."; a g.drawLine(50,200,200,200); g.drawLine(50,200,100,100); g.drawLine(200,200,100,100); break; } g.drawString(m, 20,260); g.drawString(t, 20,280); } private int leiaLado(int i) { String msg = "Digite o valor do Lado " + i; String s = JOptionPane.showInputDialog(this, msg); return Integer.parseInt(s); } private int ehTriangulo(int l1, int l2, int l3) { if ((l1 + l2 > l3) && (l1 + l3 > l2) && (l2 + l3 > l1)) { if (l1 == l2) { if (l1 == l3) return 1; else return 2; } else if (l1 == l3 || l2 == l3) return 2; else return 3; } else return 0; } }

3.5. Desao Escreva um Applet que leia as coordenadas (x,y) de 3 pontos, verique se os mesmos formam um tri ngulo e calcule a area do tri ngulo formado pelos tr s pontos. A resposta a a e dever ser impressa no Applet. Para ver porque tr s pontos formam ou n o um tri ngulo, a e a a desenhe as 3 retas que pode-se formar com os 3 pontos, uma de cada cor. As coordenadas (x,y) dos pontos dever o ser positivas e menores que a largura e altura do painel gr co a a do Applet. Sugest o: Para modicar a cor das retas, utilize o m todo setColor(Color c) a e do objeto Graphics e passe como par metro as constantes da classe Color. Exemplos: a Color.YELLOW, Color.BLUE, Color.GREEN, etc. 3.6. Exemplos Os exemplos desta aula est o disponveis no link Est gio em Doc ncia em a a e http://www.dcc.ufmg.br/thiagohb.

Você também pode gostar