Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba...

23
Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba [email protected] http://www.cin.ufpe.br/ ~phmb © Centro de Informática, UFPE

Transcript of Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba...

Page 1: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

Orientação a Objetos e JavaEspecialização em Tecnologias da

Informação

Paulo [email protected]

http://www.cin.ufpe.br/~phmb

© Centro de Informática, UFPE

Page 2: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

AWT e Applets

Objetivo

Depois desta aula você será capaz de desenvolver sistemas mais amigáveis, através da implementação de interfaces gráficas simples para os usuários. Em particular, estas interfaces poderão ser utilizadas através da WWW.

Page 3: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

AWT e Applets

Leitura prévia essencial

• Capítulos 8, 11, 12, 13 e 14 do livro Aprenda Aprenda Java 2 em 21 dias (de Lemay e Cadenhead)

Page 4: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

World Wide Web (WWW)

• Sistema de informação mundial • Documentos em HTML• Usa funções básicas da Internet• Clientes e servidores

Page 5: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

Clientes e Servidores WWW

Cliente Servidor

http://www.di.ufpe.br/

<BODY><UL>....</UL>

(URL)

Page 6: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

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– Aluguel de software

Page 7: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

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• Servlets• Java Server Pages

Page 8: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

Applets versus HTML+CGI+Javascript

• Applets eliminam 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 de software

• Problemas: eficiência e portabilidade

Page 9: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

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.di.ufpe.br/...” code=“Classe.class” width=10 height=90><param name=“text” value=“Teste”> “Perdeu de ver um applet!” </applet>

...

</HTML>

Page 10: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

Definindo Applets

import java.applet.Applet; import java.awt.Graphics;

public class HelloWorld extends Applet { public void paint(Graphics grafico) { grafico.drawString(“Olá Pessoal!”, 40, 50); }}

Page 11: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

AppletBanco: Atributos

public class AppletBanco extends Applet { //Ligação com a Fachada private Banco banco = null;

//Controles Button buttonProcurar = new Button(); Label labelValor = new Label(); TextField textFieldVal = new TextField(); Button buttonDebito = new Button(); ...

Page 12: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

Container e Controles

Controle

Container

Controle

Controle

Controle

Controle

ControleControleControleControleControle ControleControle

Container

Page 13: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

Componentes do AWT

• Containers– Container– Panel– Window– Frame– Dialog– Applet– ...

• Controles– Button– Canvas– Label– TextField– Choice– List– ...

Page 14: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

Container e Controles AppletBanco

Button

TextField

Label

TextField

Label

Panel

Page 15: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

Comunicação entre Containers e Controles: Eventos

AppletBanco

Button

TextField

Label TextField

Label

PanelactionPerformedaddActionListener

Page 16: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

Eventos com Adaptadores

AppletBancoButton

Adapter

addActionListener

actionPerformed

buttonProcurar_actionPerformed

Page 17: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

AppletBanco: Inicialização public void init() {... buttonProcurar.setLabel("Procurar"); labelValor.setText("Valor:"); textFieldVal.setBounds(127, 114, 87, 26); buttonProcurar.addActionListener( new ButtonProcurarAdapter(this)); this.setLayout(null); this.setSize(400,300); this.setBackground(Color.lightGray); this.add(buttonProcurar, null); this.add(labelValor, null); this.add(textFieldVal, null); ...

Page 18: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

AppletBanco:Tratamento de Eventos

void buttonProcurar_actionPerformed (ActionEvent e) { String num = textFieldNum.getText(); try{ Conta c = banco.procurar(num); Double s = new Double(c.getSaldo()); textFieldNumEsc.setText(c.getNumero()); textFieldSaldoEsc.setText(s.toString()); } catch (CNEException cnee) { DialogAviso d; d = new DialogAviso("Conta inexistente”,...); d.setVisible(true);... } finally {textFieldNum.setText("");...} }

Page 19: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

AppletBanco: Adaptadores

class ButtonProcurarAdapter implements java.awt.event.ActionListener { AppletBanco adaptee;

ButtonProcurarAdapter(AppletBanco adaptee) { this.adaptee = adaptee; }

public void actionPerformed(ActionEvent e) { adaptee.buttonProcurar_actionPerformed(e); }}

Page 20: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

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!

Page 21: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

Programação Visual com o JBuilder

• Vários pacotes: – AWT, Swing, JBCL, KL Group– Cuidado ao misturar classes de pacotes

diferentes– Suporte ao Swing ainda não é estável– Exportar pacotes extra-JDK junto com o sistema

• Configurar o JBuilder para não gerar inner classes

Page 22: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

AWT e Applets

Resumo

• Java e a evolução da WWW

•Applets e a classe Applet

• Componentes do AWT, containers e controles

• Comunicação baseada em eventos

• Applets e aspectos de segurança

Page 23: Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba phmb@cin.ufpe.br phmb © Centro de Informática,

AWT e AppletsLeitura adicional

• Capítulos 10 e 11, e vários exemplos em diversos capítulos, do livro Java: how to program (de Harvey e Paul Deitel)

• Capítulo 13 do livro Thinking in Java (de Bruce Eckel)

• Capítulos 1, 12, 13, e 14 do livro A Programmer’s Guide to Java Certification (de Khalid Mughal e Rolf Rasmussen)

• Pacotes da API de Java: java.applet e java.securit