Programação Orientada a Objetos (DPADF 0063) Aula 11 Applets Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno
Um programa executado no contexto de outro programa
Applets Um applet é uma aplicação que é executada no contexto de outra aplicação. Diferentemente de um programa, um applet não consegue ser executado de forma independente. Ela precisa da aplicação que lhe hospeda para ser executada. Um applet Java é um programa com interface gráfica que é executada geralmente a partir de uma página web em um navegador web. Pequenas aplicações copiadas de um servidor e executadas em um navegador.
Applets (cont.) Applets sempre são executados no computador cliente (as classes e arquivos são copiados do servidor onde a applet está hospedada; Não são executados diretamente pela JVM do computador, mas sim pela JVM do navegador; Possuem funcionalidades limitadas por questões de segurança. Toda applet é necessariamente uma aplicação gráfica (não existem applets modo texto). Hierarquia de classes de uma Applet
Applets - Execução www.meusite.com.br browser interpreta HTML Classe Java referencia
Métodos e ciclo de vida de uma applet init() Navegador instancia o Applet Inicia a execução start() Desenha paint() destroy() Navegador fecha a página stop() Para a execução
Métodos de uma applet public void init() Chamado uma vez quando o contêiner do applet é carregado (inicialização) public void start() Chamado pelo contêiner logo após o init() para inicializar a página public void paint(graphics g) Chamado pelo contêiner logo após o init() e o start(). Pode ser chamado a qualquer momento pelo método repaint(); public void stop() Para momentâneamente a execução da applet. public void destroy() Chamado pelo contêiner quando o usuário encerra a navegação.
Como executar uma applet? Uma applet não pode ser executada diretamente, precisa de uma aplicação (contêiner) para hospedá-la. É o contêiner que instancia e chama os métodos da applet. Normalmente o container é um browser que interpreta uma página HTML. A tag <applet> é utilizada no documento HTML para referenciar a classe da applet:
Como executar uma applet? (cont.) A tag <applet> não é suportada em versões mais atuais do HTML (Ex. HTML 5) e deve ser substituída pela tag <object>:
Passando parâmetros do HTML Uma applet pode receber parâmetros da página HTML que a referencia.. Os parâmetros são declarados com a tag param dentro da tag applet.
Obtendo parâmetros do HTML Para recuperar um parâmetro do documento HMTL a applet deve utilizar o método String a = getparameter( exemplo_parametro ). O método retorna uma String com o conteúdo do parâmetro informado. Utilizando a página HTML abaixo, o valor resultante para a variável a seria Hello World
O que um applet não pode fazer Applets possuem algumas limitações default não possuem acesso aos arquivos da máquina local não chamam outros programas na máquina local não se comunicam com nenhuma outra máquina a não ser a que contém a página HTML pela qual a(s) classe(s) foram carregadas. Existe um arquivo especial (policy file) que é gerenciado por uma aplicação (policytool) onde é possível autorizar uma applet a executar ações que por padrão não são permitidas: http://download.oracle.com/javase/tutorial/security/tour1/ A tentativa de uma operação não autorizada por uma applet dispara uma exceção (ex. AccessControlException)
s de uma aplicação e uma applet (diferenças de uma aplicação e uma applet) De uma forma básica, a transformação de uma aplicação em applet exige pelo menos Derivar a subclasse de Applet (awt) ou JApplet (swing); Eliminar o método main(); Implementar o método init() em substituição ao método construtor da classe.
Exercícios para fixação
IMC Índice de Massa Corporal Codifique uma classe para calcular o índice de massa corporal, conforme a tabela da organização mundial da saúde (http://www.vidaleve.com.br/imc.asp) Crie uma página HTML com informações sobre uma vida saudável (alimentos saudáveis, exercícios recomendados, etc) Codifique e inclua na página uma classe Applet para utilizar a classe que calcula o índice de massa corporal e apresentar ao usuário sua situação.