A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

O primeiro applet

Ter

7

Abr

2009


11:00

(8 votos, média 4.63 de 5) 


Iniciante

Nada de Hello World! Vamos por a mão na massa fazendo um applet bem simples que mostra uma imagem da nossa escolha. Os pontos principais deste tutorial são:

  1. Criar a estrutura básica de um applet
  2. Tratar parâmetros
  3. Substituir métodos
  4. Inserir o applet num documento HTML

O código Java

import java.applet.*; import java.awt.*; public class safeImg extends Applet { Image image = null; public void init() { /**** Pega parâmetros, se existirem ****/ String nomeImg = getParameter("imagem"); /**** Examina parâmetros ****/ if (nomeImg != null) imagem = getImage(getCodeBase(), nomeImg); } public void update(Graphics g) { paint(g); } public void paint(Graphics g) { if (imagem != null) g.drawImage(imagem, 0, 0, this); } } // fim da classe

Inserção no documento HTML

O applet funcionando

Compilando o código Java com qualquer compilador disponível (por exemplo, o javac.exe do kit desenvolvedor) será gerado um arquivo de bytecodes com o mesmo nome da classe, ou seja, safeImg.class.

Crie um documento HTML e insira o applet como mencionado acima. Indique o nome de uma imagem do tipo gif ou jpg. Neste exemplo foi usado o gif animado AnimJava.gif. O applet precisa ter, no mínimo, a largura (width) e a altura (height) da imagem indicada. Não se esqueça de por o arquivo da imagem mencionada no parâmetro "imagem" no mesmo diretório onde está a classe.

Chame o documento num browser e aprecie o resultado do seu trabalho.

Explicações que podem ser úteis

Qual a vantagem de um applet tão bobinho? A primeira é a de aprender como se faz applets, outra é proteger parcialmente suas imagens: o usuário comum não vai conseguir copiá-las apenas com um clique de mouse. Experimente... e tudo isto com um applet que tem menos de 1 Kb!

De acordo com os números das linhas do código Java acima, seguem algumas observações:

Linha 1: Importamos o pacote java.applet.* com todas as suas classes para podermos fazer a extensão da classe Applet e criar nosso próprio applet.

Linha 2: Também importamos o pacote java.awt.* com todas as suas classes para apoiar os tipos Image (referênciado na linha 5) e Graphics (referênciado nas linhas 16 e 20).

Linha 4: Vamos dissecar a declaração public class safeImg extends Applet:

  • public => torna a nossa classe pública para que possa ser acessada por outros aplicativos java, ser incluída num documento HTML ou ser acessada através de JavaScript.
  • class => é a declaração de que queremos construir uma nova classe (é o chamado construtor de classes).
  • safeImg => é o nome da classe que será construída.
  • extends => indica que queremos "clonar" uma classe pré-existente (está no pacote java.applet.*).
  • Applet => é a classe que servirá de modelo de "clonagem", ou seja, a classe que será estendida (atencao o nome da classe inicia-se com A maiúsculo - Applet e não applet!). Após esta declaração, tudo o que estiver contido entre as chaves { e } fará parte da classe declarada.

Linha 5: Na declaração de variáveis não usamos nenhum modificador (veja no tutorial A estrutura básica de um applet), restringindo seu escopo à classe safeImg (a única do nosso pacote).

Image imagem = null; inicializa a variável de nome imagem, do tipo Image (definida no pacote java.awt.* que importamos), e atribuímos a ela o valor null. Esta variável será utilizada para guardar a imagem que será mostrada no applet.

Declaramos a variável dentro da nossa classe e fora de qualquer método para que ela possa ser acessada por qualquer um dos métodos definidos na nossa classe, ou seja, ela pertence à classe safeImg e a todos os métodos desta classe.

Sabemos que a classe Applet possui vários métodos. Podemos utilizar os métodos herdados sem alterá-los, podemos substituí-los ou podemos ampliá-los (veja no tutorial A estrutura básica de um applet).

Linha 7: O primeiro método que um applet executa, e apenas uma vez ao ser carregado, é o método init(). É aí que substituímos o valor null da variável imagem se o parâmetro enviado ao applet estiver correto. Caso contrário, imagem continuará sendo null.

Linha 9: Usamos o método getParameter("nome do parâmetro"), que retorna uma string com o valor do parâmetro indicado. A string de retorno é atribuída à variável nomeImg, do tipo String, inicializada dentro do método init() por que será utilizada apenas por este método. Nosso bloco de código HTML <applet>...</applet> contém o parâmetro "imagem" cujo valor é "AnimJava.gif". Se tudo correr de acordo, o valor de nomeImg será "AnimJava.gif"; se ocorrer um erro, nomeImg será null.

Linha 12: Testamos o valor de nomeImg através de if(nomeImg != null), ou seja, traduzindo, se (nomeImg não for igual a null). Se nomeImg for igual a null, a próxima linha não é executada. Se for diferente de null, imagem = getImage(getCodeBase(), nomeImg); será interpretado. Vamos por partes:

  • imagem é a variável do tipo Image declarada anteriormente.
  • getImage() é um método que retorna uma imagem do tipo gif ou jpg.
  • getCodeBase() retorna o endereço (URL) onde a classe está localizada. É por este motivo que o arquivo da imagem precisa estar no mesmo diretório que a classe do nosso applet.

Depois do método init(), que nós substituímos, o applet executa automaticamente o método start(). Como start() não foi substituído, os procedimentos automáticos vão se sucedendo até chegar nos métodos update() e paint() que desenharão, respectivamente, o fundo e o conteúdo da janela do applet. Toda vez que o applet precisar ser atualizado graficamente, estes dois métodos são invocados.

Linha 16: Como não há necessidade de toda vez redesenhar o fundo, substituímos o método update() para não perder tempo com coisas desnecessárias. Nosso novo update() simplesmente redireciona a execução para o método paint(), deixando o fundo intacto.

Linha 20: O método paint() também é substituído para que desenhe nossa imagem toda vez que for necessário. O parâmetro Graphics que o método paint() recebe é a área que deve ser desenhada, juntamente com seus atributos.

Graphics possui o método drawImage(, , , ) que faz com que a imagem indicada ( = imagem) seja desenhada a partir das coordenadas indicadas ( = 0, = 0) e no local indicado ( = this), onde this é uma palavra-chave para se referir à classe, ou seja, o próprio applet.

Caso a variável imagem seja null, nada acontece e a "telinha" do this (desculpe, do applet) fica cinza e sem imagem.

Considerações finais

Concordo que tem texto demais neste tutorial mas... qualquer criança, antes de aprender a falar, precisa escutar muuuiiiito. Se quisermos falar javanês um dia, toca escutar smile

À medida que tenhamos uma base sólida e conceitos bem definidos, nem explicação mais é preciso: basta dar uma olhada no código fonte para saber do que se trata.

Este tutorial está disponível para download na seção [Downloads / Tutoriais / Java].

Grande abraço e sucesso!

Vó Vicki vovo

mfx broker опционытушеватьлобановский александр детицентр церковькомпания металлопрокатгде купить посуду оптомникас работа

Informações adicionais