Applets
Programação 3: Orientação a Objetos e Java
WWW - World Wide Web
- Biblioteca eletrônica mundial
- Documentos em HTML
- Sistema de informação mundial
- Usa funções básicas da Internet
- Clientes e servidores
Clientes e Servidores WWW
Por que Java?
- WWW mais interativa
- Documentos animados,
dinâmicos
- Ensino a distância, telemedicina
- Comércio eletrônico
- Utilização de software pela
Internet
- Independência de plataforma
- Atualizações e instalações transparentes
- Mercado de componentes de software
Java e a Evolução da WWW
- Helpers e plug-ins
- Processamento no cliente: applets
- Backchannels
- Sistemas de informação
distribuídos ou cliente/servidor de alto desempenho
- Outras tecnologias: HTML, CGI e
Perl, Javascript, ActiveX, Java Beans, ...
Java versus HTML+CGI+Javascript
- Java elimina gargalos:
- cliente fala direto com o servidor da aplicação (usando objetos ao invés de strings)
- qualquer tipo de processamento pode ser feito no cliente
- carga do servidor pode ser distribuída
- Java é uma linguagem de
programação que dá suporte a princípios de engenharia e qualidade de software
WWW e Java: Interação
- Applets são programas Java
disponibilizados via WWW, através de uma página HTML
<html>
...
<applet codebase="http://www.cin.ufpe.br/~java..."
code="arq.class" width=10 height=90>
<param name="text" value="Teste">
"Perdeu de ver um applet!"</appket>
...
</html>
Definindo Applets
import java.applet.Applet;
import java.awt.Graphics;
class HelloWorld extends Applet {
public void paint(Graphics grafico) {
grafico.drawString("Olá Pessoal!",
160, 70);
}
}
Applet GUIConta: Atributos
public class
GUIConta extends Applet {
XYLayout xYLayout1 = new
XYLayout();
Button buttoncredito = new
Button();
TextField textFieldcredito = new
TextField();
TextField textFieldsaldo = new
TextField();
Label labelsaldo = new Label();
private Conta conta;
String rotulo_saldo;
...
}
Applet GUIConta: Eventos
Applet GUIConta: Inicialização
public void
init() {
xYLayout1.setWidth(400);
buttoncredito.setLabel("Crédito");
buttoncredito.addActionListener(new
GUIConta_buttoncredito_actionAdapter(this));
labelsaldo.setText(rotulo_saldo);
conta = new Conta("204.673-4");
this.setLayout(xYLayout1);
this.add(buttoncredito, new XYConstraints(40, 65, 79, 32));
...
}
Applet GUIConta: Eventos
void buttoncredito_actionPerformed(ActionEvent
e) {
try {
Double d =
Double.valueOf(textFieldcredito.getText());
conta.credito(d.doubleValue());
}
catch (NumberFormatException exc) {}
finally {
textFieldcredito.setText("");
textFieldsaldo.setText("");
textFieldsaldo.setText(String.valueOf(conta.saldo()));
}
}
class
GUIConta_buttoncredito_actionAdapter implements
java.awt.event.ActionListener{
GUIConta adaptee;
GUIConta_buttoncredito_actionAdapter(GUIConta a) {
this.adaptee = a;
}
public
void
actionPerformed(ActionEvent e) {
adaptee.buttoncredito_actionPerformed(e);
}
}
Applets: Aspectos de Segurança
- Applets devem satisfazer
várias restrições, impostas pelos folheadores:
- não ter acesso a arquivos do cliente
- só se conectar com o servidor de origem
- não usar métodos nativos
- Restrições podem ser eliminadas
para applets assinados e transmitidos de forma segura!
Leitura
- Capítulo 15 do livro Dominando
o Java (de Scott McNealy)
- Vários exemplos em diversos
capítulos do livro Java: how to program (de Harvey e Paul Deitel)
- Tutorial sobre applets em http://www.cin.ufpe.br/~java/docs/tutorial/applet
- Aula Internet, WWW e Java
do curso Orientação a Objetos e Java (http://www.cin.ufpe.br/~if101)
- Pacotes da API de Java: java.applet e java.security
Exercício
1. Utilizando o JBuilder, abra o projeto appletconta.jpr
e siga o roteiro apresentado.