Você está na página 1de 19

1

Programao OO usando Java - Prof. Luciana Porcher Nedell


Applets
T Mtodos da classe Applet
T Criando applets
T Passando parmetros de uma pgina HTML
T Migrando de uma aplicao para uma applet
T Applets vs. Segurana
Programao OO usando Java - Prof. Luciana Porcher Nedel
Objetivos
T Migrar de uma aplicao para uma applet
T Escrever uma applet e integrar em uma pgina
HTML
T Descrever que mtodos so chamados pelo
navegador e quando
T Passar parmetros a uma applet partir de uma
pgina HTML
T Descrever as diferenas entre applets confiveis e
no-confiveis
2
Programao OO usando Java - Prof. Luciana Porcher Nedel
Applet ?
T Pequena aplicao executada em uma janela de
uma aplicao (browser/appletviewer)
T Tem por finalidade estender as funcionalidades de
browsers, adicionando som, animao, etc.,
provenientes de fontes (URLs) locais ou remotas
T Cada pgina (arquivo .html) pode conter uma ou
mais applets
Programao OO usando Java - Prof. Luciana Porcher Nedel
Applet?
T A cada mudana de pgina as applets associadas
so automaticamente destrudas
T Um navegador web que permite a execuo de
applets dito Java-enabled.
T Uma pgina HTML contendo applets dita Java-
powered.
3
Programao OO usando Java - Prof. Luciana Porcher Nedel
Servidor de aplicaes
distribui uma pgina web
contendo uma applet
Java
Cliente executa em um
navegador web
Introduo
T Uma applet incorporada em uma pgina web
T Applets podem ser carregadas a partir de um disco
local ou de um servidor de aplicaes (web)
Programao OO usando Java - Prof. Luciana Porcher Nedel
Introduo
T O desenvolvimento ou no de programas em Java sob a
forma de applets depende do objetivo da aplicao. Se por
um lado a execuo necessita de um navegador, por outro
pode ser disponibilizada para execuo via internet. Cabe
ao projetista da aplicao definir a forma mais adequada
para seu sistema.
T Applets sempre executam nos clientes web, nunca nos
servidores. Por esta razo a carga das classes pode levar
algum tempo. Para definir programas Java que rodem no
servidor, veja como construir servlets.
4
Programao OO usando Java - Prof. Luciana Porcher Nedel
Caractersticas
Aplicaes
T programa autnomo
T executa em uma JVM autnoma
T ponto de entrada o mtodo main( ),
chamado pelo carregador de classes
T geralmente contm construtores
T acesso a todos os recursos do
ambiente
T pode ser grfica
T funcionalidades plenas: menus,
dilogos, arquivos...
Applets
T executada por um navegador
T o navegador fornece a JVM
T vrios pontos de entrada so chamados
pelo navegador como init( )
T construtores tendem a ser vazios
T so sempre grficas
T devem fornecer uma classe que estenda
Applet
T funcionalidades limitadas por razes de
segurana
T carregador de classes remotas
Programao OO usando Java - Prof. Luciana Porcher Nedel
Container
Panel
Applet
MyApplet
Object
Component
A classe Applet
T Para criar uma applet, cria-se uma sub-classe de
Applet e redefine-se certos mtodos:
S init( )
S start( )
S stop( )
S destroy( )
S paint( )
S update( )
5
Programao OO usando Java - Prof. Luciana Porcher Nedel
A classe Applet
T Especializao de Panel: um container simples
para exibir elementos grficos
T Oferece um conjunto de mtodos para:
S iniciar/controlar/ terminar a execuo de uma aplicao
em um browser
S buscar e executar componentes de som e imagem
T Segurana: fortes restries a arquivos
Programao OO usando Java - Prof. Luciana Porcher Nedel
Package java.applet
T Fornece as classes para:
S criar applets
S permitir que applets se comuniquem com seu contexto
T Contexto de uma applet:
S uma aplicao que responsvel por carregar e
executar applets.
R Exemplo: navegadores e appletviewer
S o cdigo html que a contm e as demais applets
contidas no mesmo documento
6
Programao OO usando Java - Prof. Luciana Porcher Nedel
Carrega/executa
classes (.class)
locais ou remotas
public class Mostra
extends Applet
{ public void init ( ) {
... }
....}
public class Exibe
extends Applet
{ public void init ( ) {
... }
....}
navegador WEB
(arquivo.html)
Execuo de applets
Programao OO usando Java - Prof. Luciana Porcher Nedel
Browser
Mostra.html
Mostra.html
<applet code=Mostra.class ....>
</applet>
Mostra.java
Mostra.class
class Mostra extends Applet
{
...
}
bytecodes
1
2
3
O arquivo Mostra.class carregado e executado
Execuo em HTML
7
Programao OO usando Java - Prof. Luciana Porcher Nedel
Os 4 mtodos do ciclo de vida da applet
T init( ) - inicializao; chamado quando a applet
inicialmente carregada
T start( ) - execuo (animao); chamado aps o
init( )
T stop( ) - interrupo; faz a applet parar a execuo
da animao, udio ou vdeo
T destroy( ) - liberao de recursos; chamado
quando o browser fechado
Programao OO usando Java - Prof. Luciana Porcher Nedel
Ciclo de vida de uma applet
Destruda
init()
stop()
destroy()
start()
paint()
Inicializada
Executada
Nova applet
8
Programao OO usando Java - Prof. Luciana Porcher Nedel
Browser
Browser Browser Browser
[1] o primeiro
acesso a pgina
com
a applet
Carrega a applet e
executa o init()
Mtodos start(),
paint(), stop()
stop()...
destroy()
[2] A applet foi
carregada e o
browser pode
chamar ...
[3] O browser
sai da pgina
atual,
ocasionando a
chamada de
Ciclos do processo de execuo
Programao OO usando Java - Prof. Luciana Porcher Nedel
Esqueleto de uma applet
public class MinhaApplet extends Applet {
public void init( ){
// Inicializa a applet
}
public void start( ){
// Dispara a execuo de uma applet
}
public void stop( ){
// Pra a execuo de uma applet
}
public void destroy( ){
// Destri definitivamente uma applet
}
public void paint(Graphics g){
...
}
}
9
Programao OO usando Java - Prof. Luciana Porcher Nedel
Implementando uma applet
T Toda applet uma aplicao grfica. No existem applets
modo texto.
T A principal diferena entre uma Java application e uma
applet o fato de que a janela base da aplicao ser
derivada a partir da classe Applet e no a partir da classe
Frame.
T Alm disso, a parte da aplicao que instancia a classe
Applet e relaciona-a com o browser padro e, portanto,
no precisa ser descrita. Desta forma, applets no tero a
funo main( ).
T Veja o exemplo:
Programao OO usando Java - Prof. Luciana Porcher Nedel
Implementando uma applet
import java.applet.*;
import java.awt.*;
public class Exemplo extends Applet{
private int x,y,tam;
public void init( ){
x = 10; y = 10; tam = 0;
}
public void start( ){
tam += 5;
}
public void paint(Graphics g){
g.setColor(new Color(200,123,212));
g.fillRect(x,y,tam,10);
}
public void stop(){
}
}
<< Faz o papel do construtor
<< Ativado logo aps init e toda a vez que a applet
for revisitado
<< Ativado sempre que a applet pode parar de
executar (no est visvel)
10
Programao OO usando Java - Prof. Luciana Porcher Nedel
Inserindo uma applet em uma pgina
T Para que possa ser executada, uma applet deve ser associada a uma
pgina www atravs de cdigo HTML. Veja o exemplo a seguir:
<HTML>
<HEAD>
<TITLE>Applet title</TITLE>
</HEAD>
<BODY>
<H1>First Heading</H1>
<HR>
<APPLET CODE=Exemplo.class WIDTH=120 HEIGHT=150></APPLET>
<HR>
</BODY>
</HTML>
Programao OO usando Java - Prof. Luciana Porcher Nedel
Inserindo uma applet em uma pgina
T Ateno: normalmente os navegadores esto
configurados para carregar cada applet apenas na
primeira vez que uma pgina acessada.
T Logo, se a applet for recompilada nesse meio
tempo, ser necessrio forar a sua recarga (no
adianta fazer apenas o reload da pgina).
11
Programao OO usando Java - Prof. Luciana Porcher Nedel
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(Esquea desaforos,
nunca esquea gentilezas., 30,30);
pagina.drawString(----Confcio,
70,70);
} //ditado
} // classe Confucio
Exemplo de applet
Programao OO usando Java - Prof. Luciana Porcher Nedel
Arquivo HTML associado: nome.html
<HTML>
<BODY>
<APPLET CODE =
nomeclasse.class
WIDTH =...
HEIGHT= ...>
</APPLET>
</BODY>
</HTML>
<! Confucio.html>
<HTML>
<HEAD>
<TITTLE> CONFUCIO</TITLE>
</HEAD>
<BODY>
<H3>
<APPLET CODE=Confucio.class
WIDTH=300 HEIGHT=150>
</APPLET>
<HR>
</BODY>
</HTML>
12
Programao OO usando Java - Prof. Luciana Porcher Nedel
Recuperando arquivos de imagens
T Carregando um objeto imagem do diretrio de
onde foi lido o .html:
Image img, img2;
img=getImage(getDocumentBase( ), lenna.jpg);
T Carrega um objeto imagem do diretrio de onde foi
carregado o .class:
img2=getImage(getCodeBase( ), mandril.jpg);
R Exemplo (ImageDisplayer.java)
R Exemplo (ImageDisplayer2.java)
Programao OO usando Java - Prof. Luciana Porcher Nedel
Criando applets: exibindo uma imagem
import java.applet.*;
import java.awt.*;
public class Imagem1 extends Applet
{ Image imagem;
public void init( )
{
imagem=getImage(getDocumentBase( ), mandril.jpg);
}
public void paint(Graphics g)
{
g.drawImage(imagem,0,0,this);
g.drawString(Macaco Mandril, 50, 25);
}
}
13
Programao OO usando Java - Prof. Luciana Porcher Nedel
Parametrizao em uma pgina web
< APPLET
CODE = appletFile // Obrigatrio. Fornece o nome da classe que contm a applet
WIDTH = pixels // Obrigatrio. Fixa o tamanho inicial da applet em pixels
HEIGHT = pixels
[ CODEBASE = codebaseURL ] // Opcional. Define a base URL da classe do applet
[ ALT = alternateText ] // Permite exibir uma mensagem para o browser
[ NAME = appletInstanceName ] // Opcional. Fornece a instncia de uma applet em
// uma pgina HTML, de modo a estabelecer uma
// comunicao entre applets
[ ALIGN = alignment ] // Posicionamento de uma applet em uma pgina HTML. Os
// valores permitidos so: left, right, top, texttop, middle,
// absmiddle, baseline, bottom, absbottom.
[ VSPACE = pixels ] // Nmero de pixels entre a applet e o resto da pgina HTML
[ HSPACE = pixels ]
>
[ < PARAM NAME = appletParameter1 VALUE = value >]
// nico modo de passar argumentos a uma applet
[ < PARAM NAME = appletParameter2 VALUE = value >]
Programao OO usando Java - Prof. Luciana Porcher Nedel
arquivo .html:
<APPLET CODE=Confucio.class ...>
<PARAM NAME=title VALUE=Dito de Confucio>
</APPLET>
mtitulo = getParameter(title);
arquivo .java
Mtodo getParameter()
T getParameter(): retorna o valor do parmetro
indicado existente no documento base (.html)
S public String getParameter(String name)
T Exemplo
14
Programao OO usando Java - Prof. Luciana Porcher Nedel
Um html -> vrias applets
<html>
<body>
<!CENTER>
<applet CODE="Confucio.class" WIDTH="415"
HEIGHT="83">
<param NAME="title" VALUE="Panel X Applet:1">
<applet CODE="MinhaApplet.class" WIDTH="483"
HEIGHT="104">
<param NAME="title" VALUE="Panel X Applet:2"></applet>
</body>
</html>
Programao OO usando Java - Prof. Luciana Porcher Nedel
Outros mtodos da classe Applet
T resize(): redefine o tamanho da applet;
S public void resize(int width,int height)
T getImage(): retorna um objeto Image que pode ser
exibido na tela pelo mtodo paint()
S public Image getImage(URL url)
T newAudioClip(): busca um clip de udio que pode
ser executado pelo mtodo play()
S public static final AudioClip newAudioClip(URL url)
15
Programao OO usando Java - Prof. Luciana Porcher Nedel
Mtodos URL
getCodeBase(): retorna a URL base da classe
public URL getCodeBase()
getDocumentBase(): retorna a URL base do HTML
public URL getDocumentBase()
Exemplo:
Image img, img2;
img=getImage(getDocumentBase(), tulipas.gif);
img2=getImage(getCodeBase(), coracao.gif);
Programao OO usando Java - Prof. Luciana Porcher Nedel
Transformando aplicaes em applets
T Passo 1: Eliminar o main( )
S usando applets o browser cria o objeto da classe
especificada no TAG :
S <APPLET CODE = ... >
S O tamanho da applet definido por WIDTH e HEIGHT
T Passo 2: Derivar a classe de Applet (public):
S public class MinhaClasse extends Applet
T Passo 3: Substituir o construtor pelo mtodo init( )
16
Programao OO usando Java - Prof. Luciana Porcher Nedel
Applets vs. Segurana
T O que uma applet Java pode ou no, determinado pelo gerente de
segurana do browser e pela segurana do sistema.
T Limitaes default: uma applet no pode
S acessar arquivos na mquina local
S chamar outro programa na mquina local
S se comunicar com nenhuma outra mquina a no ser a que contm a pgina
HTML em questo
T Estas limitaes podem ser ocasionalmente autorizadas atravs de
um arquivo especial (policy file)
Define o que permitido
para um cdigo-fonte
particular
Programao OO usando Java - Prof. Luciana Porcher Nedel
Parada para exerccios
T Abrir os seguintes arquivos em um navegador:
S Confucio.html
S MinhaApplet.html
17
Programao OO usando Java - Prof. Luciana Porcher Nedel
Exerccio
Carregar e executar, a partir do diretrio indicado, os
seguintes arquivos: MinhaApplet.* e Confucio.*. A seguir,
fazer alguma alterao (cor, tamanho, texto, etc) nos fontes
das applets e gerar um arquivo .html para exibir pelo menos
trs applets.
Usar duas formas de visualizao: com appletviewer e com
um browser(Netscape/Explorer)
Exemplo de execuo com Appletviewer:
:\jdk1.2.1\bin\javac MinhaApplet.java
:\jdk1.2.1\bin\appletviewer MinhaApplet.html
(continua)
Programao OO usando Java - Prof. Luciana Porcher Nedel
Exerccio
T Importante: o ambiente de
execuo de Java fica bloqueado
aguardando o final da execuo.
A janela AppletViewer deve ser
fechada (X) para terminar a
execuo.
T A execuo com Browser pode
ser feita:
S Clicando o nome/cone do arquivo
.html
S Usando a opo Abrir Pgina
(local) do browser.
18
Programao OO usando Java - Prof. Luciana Porcher Nedel
Java e a biblioteca de classes Swing
import javax.swing.JApplet; // importa a classe JApplet
import java.awt.Graphics; // importa a classe Graphics
public class WelcomeApplet extends JApplet {
public void paint( Graphics g )
{
g.drawString( "Welcome to Java Programming!", 25, 25 );
}
}
TOutra maneira de programar applets usando os
componentes da Swing (uma extenso AWT), que
sero abordados em profundidade mais tarde...
Programao OO usando Java - Prof. Luciana Porcher Nedel
Desenvolvimento de applets
T Tratamento de eventos
S procedimentos em resposta a aes do usurio
T Classes do package de classes de interface
S elementos grficos bsicos como botes, scrollbars, painis,
frames, canvas, etc.
T Classes do AWT
S elementos grficos bsicos como botes, scrollbars, painis,
frames, canvas, etc
T Classes de java Swing
S renem elementos bsicos de forma mais encapsulada
S Swing praticamente substitui AWT, pois fornece componentes de
interface mais poderosos
19
Programao OO usando Java - Prof. Luciana Porcher Nedel
Desenvolvimento de applets
T Se houver gerao de desenhos
S Graphics (AWT)
S Java3D
observao: estes requisitos so tambm os de
desenvolvimento de aplicaes em Java
Programao OO usando Java - Prof. Luciana Porcher Nedel
Applets - Programao Orientada a Eventos
T Applets, sendo programas grficos e interativos,
so direcionadas a eventos.
S Eventos correspondem ocorrncia de algum fato, o
qual deve (ou no) desencadear um procedimento
especfico
T No h, em princpio, uma seqncia para a
execuo de procedimentos.
S Procedimentos so acionados dependendo de aes
do usurio.

Você também pode gostar