Execução de applets

Ao contrário das aplicações Java, a execução de um applet em uma página não é iniciada pelo método main(). Um applet é executado como uma thread subordinada ao navegador (ou à aplicação appletviewer, presente no ambiente de desenvolvimento Java). O navegador será responsável por invocar os métodos da classe Applet que controlam a execução de um applet.

Quando o applet é carregado pela primeira vez pelo navegador, o método init() é invocado pelo navegador. Esse método pode ser considerado funcionalmente equivalente ao método construtor em aplicações, pois será apenas executado no momento em que o código for carregado.

Após o carregamento do applet para a máquina local e a execução do método init(), o método start() é invocado. Esse método será invocado também a cada vez que a área do applet torna-se visível no navegador, dando reínicio a operações que eventualmente tenham sido paralisadas pelo método stop().

O método stop() é invocado cada vez que o applet torna-se temporariamente invisível, ou seja, que sua área não esteja visível no navegador. É uma forma de evitar que operações que demandem muita CPU continuem a executar desnecessariamente. Também é invocado imediatamente antes de destroy(), que é invocado quando o applet está para ser eliminado do navegador. Este método serve para liberar recursos -- além de memória -- que o applet tenha eventualmente alocado para sua execução.

Esse exemplo ilustra a definição de um applet que implementa apenas esses quatro métodos. Quando carregada em um navegador Web, a página que referencia esse código apresenta apenas uma área vazia; porém, se o console Java do navegador for aberto, será possível visualizar as mensagens:

Mensagens do console Java

Sendo um componente gráfico do tipo container, todas as funcionalidades descritas para o desenvolvimento de aplicações gráficas aplicam-se a applets. Por exemplo, é possível que um applet apresente formas geométricas em seu contexto gráfico usando o método paint() ou incluir componentes de interface com usuário e tratar a manipulação de eventos.

Alguns métodos da classe Applet permitem a comunicação do applet com o navegador no qual ele está inserido. O método getParameter() permite a passagem de parâmetros do navegador para o applet. O método showStatus() exibe uma mensagem na linha de status do navegador que executa o applet. O método getAppletContext() permite obter o contexto de execução do applet, o que permite por exemplo estabelecer a comunicação entre dois applets de uma mesma página.

Como código de um applet é obtido através de uma conexão remota, sua execução está restrita aos princípios de segurança impostos por Java para a execução de código em ambientes distribuídos. Tipicamente, um applet não pode acessar arquivos e informações do ambiente onde está executando nem pode estabelecer conexões remotas com outras máquinas (a não ser aquela de onde o próprio código foi obtido).