Uma applet é uma pequena aplicação executada em uma janela de uma
aplicação (browser/appletviewer). Tem por finalidade estender as funcionalidades de
browsers, adicionando som, animação, etc., provenientes de fontes (URLs) locais ou
remotas, sendo que cada página web (arquivo .html) pode conter uma ou mais applets.
O desenvolvimento ou não de programas em Java sob a forma de applets depende do objetivo da aplicação. Se por um lado a execução necessita de um navegador, por outro pode ser disponibilizada para execução via internet. Cabe ao projetista da aplicação definir a forma mais adequada para seu sistema.
Applets sempre executam nos clientes web, nunca nos servidores. Por esta razão a carga das classes pode levar algum tempo. Para definir programas Java que rodem no servidor, veja como construir servlets.
4 são os métodos que definem o ciclo de vida de uma applet:
Toda applet é uma aplicação gráfica, não existindo portanto applets modo texto. A principal diferença entre uma Java application e uma applet é o fato de que a janela base da aplicação é derivada a partir da classe Applet (ou JApplet) e não a partir da classe Frame. Além disso, a parte da aplicação que instancia a classe Applet e relaciona-a com o browser é padrão e, portanto, não precisa ser descrita. Desta forma, applets não possuem a função main( ).
O programa abaixo implementa uma applet muito simples.
import java.applet.*; import java.awt.*; public class Exemplo extends Applet{ public void init( ){ |
Execute a classe do exemplo acima com o auxílio do BlueJ. Experimente agora minimizar e maximizar a janela da applet diversas vezes e verifique o que acontece.
Também vimos que applets são aplicações desenvolvidas
para serem executadas a partir de um browser e, portanto, devem ser incluídas em páginas
web. O exemplo abaixo mostra uma applet e o arquivo html que a contém. Experimente...
Confucio.java | Confucio.html |
import java.applet.Applet; import java.awt.*; // Exibe um ditado de Confucio // do livro: Java Software Solutions:J. Lewis e W. Loftus public class Confucio extends Applet{ public void paint(Graphics pagina){ pagina.drawString("Esqueça desaforos, nunca esqueça gentilezas.", 30,30); pagina.drawString("----Confúcio", 70,70); }//ditado }// classe Confucio |
<! Confucio.html> <HTML> <HEAD> <TITTLE> CONFUCIO</TITLE> </HEAD> <BODY> <H3> <APPLET CODE="Confucio.class" WIDTH=300 HEIGHT=150> </APPLET> <HR> </BODY> </HTML> |
Experimente também este outro exemplo:
MinhaApplet.java | Teste.html |
import java.awt.*; import java.applet.*; public class MinhaApplet extends Applet{ public void init() { //
inicializacao public void paint(Graphics g)
{//conteudo |
<!doctype html public "-//w3c//dtd
html 4.0 transitional//en"> <html> <head> <TITTLE> </head> <body> Pequena Aplicação <h3> <applet CODE="MinhaApplet.class" WIDTH="323" HEIGHT="144"></applet> <hr></h3> </body> |
Agora, gere um arquivo .html para exibir as duas applets acima ao mesmo tempo e carregue em um browser (Netscape, Explorer ou outro).
Importante: o ambiente de execução de Java fica bloqueado aguardando o final da execução. A janela AppletViewer deve ser fechada (X) para terminar a execução, enquanto que a execução com Browser pode ser feita de 2 formas:
Você deve ter percebido que não usamos componentes do Swing. O motivo é simples: atualmente, os navegadores oferecem (nativamente) apenas uma JVM compatível com a versão 1.1 do JDK. Swing é uma extensão da biblioteca de classes (por isso o javax.swing), portanto não existe no 1.1. Somente o appletviewer executa diretamente applets Swing (por que será ...)
Porém, há uma maneira de utilizar Swing e recursos do JDK 1.2/1.3/1.4 em um applet: a Sun criou um plug-in para os navegadores (Java Plug-in), isto é, um módulo que é instalado junto ao navegador e adiciona funcionalidade a este. Outros exemplos de plug-ins que todo mundo conhece: Macromedia Flash, Quicktime, RealPlayer, etc.
O único problema com o Java Plug-in é que temos que alterar a chamada para o applet, pois se usarmos a tag <applet>, o navegador ativará a sua própria JVM.
Como a nova sintaxe é extremamente obscura (e varia de navegador para navegador, argh), a Sun (felizmente) disponibilizou um programinha (em Java, obviamente) para converter páginas HTML com tags <applet>. Este programa é chamado de HTML Java Converter.
Exercício:
|
Se você não reparar muito na bagunça que ficou o seu arquivo HTML, esse método é muito prático e transparente ao usuário final. Basta que ele tenha instalado o Java Plug-in, obviamente. Por esse motivo, às vezes as pessoas procuram escrever applets usando apenas AWT, para que se possa executá-los diretamente no navegador, sem instalar mais nada...
Porém, para que se utilize efetivamente o Java Plug-in, é necessário alterar o código dos applets, fazendo com que estes sejam derivados de JApplet, e não de Applet. Assim como nos JPanels, um JApplet tem um Container, acessado pelo método getContentPane().
Exercício:
|
Não esqueça: é fundamental encerrar a aula de hoje
|