Java First-Tier: Aplicações. Construção de Applets. Applets. Applets: Internet Intranet



Documentos relacionados
Programação Java. Construção de Applets

Métodos da classe Applet Criando applets Passando parâmetros de uma página HTML Migrando de uma aplicação para uma applet Applets vs.

Programação Orientada a Objetos (DPADF 0063)

Desenvolvendo aplicações

Especialização em Engenharia de Software - CEUT

Curso de Aprendizado Industrial Desenvolvedor WEB

Criação de Applets Package: Class Name Base Class: Generate header comments: Can run standalone: Generate Standard methods:

Entender princípios de projeto. Capacitação para construir GUIs. Entender os pacotes que contém componentes de GUI, e as classes e interfaces de

Como usar a documentaçã

Interfaces Gráficas: Interações Complexas

PDI 1 - Projeto e Design de Interfaces Web

Criação de Applets com o JBuilder Professor Sérgio Furgeri

Objetivos do Curso. Você será capaz de:

Introdução ao HTML. Sumário

Imagens: <img src="..."> src <img src="tecnologia.jpg"> único atributo que não pode ser omitido neste TAG Nota: img

Manual do Usuário Android Neocontrol

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Componente Net Empresa

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Servlets e Applets, funcionamento e comparativo.

CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA A F B G C H D I E J

Imagens - Formatos. GIF (Graphics Interchange Format) JPEG (ou JPG) (Joint Pictures Experts Graphis)

Imagens: <IMG SRC="..."> SRC <IMG SRC="tecnologia.jpg"> único atributo que não pode ser omitido neste tag Nota: img

MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA

A INTERNET COMO FERRAMENTA AUXILIAR NO ENSINO DE MECÂNICA COMPUTACIONAL

Introdução à Linguagem Java

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

mkdir /srv/www/default/html/calculadora/imagens mkdir /srv/www/default/html/calculadora/blocos

Aula 11: Interfaces gráficas (1/2): elementos de interface Swing

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

Tutorial de Computação Introdução a Programação Gráfica em Java para MEC1100 v

2 HTML Inserindo objetos

Introdução à linguagem Java

Introdução. História. Como funciona

USANDO APPLETS NO NETBEANS (WEB APPLICATION)...E A APPLET CHAMA ALGUM PACOTE EXTERNO (por Luis Alberto M Palhares de Melo Julho/2011)

Programação por Objectos

Módulo: Criação de Páginas WEB

Interface com o Usuário (UI) UIs Desacopladas (2/3) BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos

Programação Gráfica em Java.

Linguagens de. Aula 02. Profa Cristiane Koehler

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

JAVA APLICAÇÕES GRÁFICAS Propriedades Utilizadas: imagecomposite FACULDADE DE TECNOLOGIA SENAC PELOTAS

Procedimentos para Configuração do Ambiente J2EE e J2SE em Ambiente Windows

MQSeries Everyplace. Leia-me primeiro G

Universidade Federal de Viçosa Departamento de Informática

Scriptlets e Formulários

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

WordPress Institucional UFPel Guia Rápido

Ferramentas: jar e javadoc

8. Interfaces Gráficas de Usuário

A Linguagem Java. Apresentação. Java. A Linguagem da Internet

THREADS EM JAVA. George Gomes Cabral

ESTUDO SOBRE AS LINGUAGENS DE PROGRAMAÇÃO HOSPEDEIRAS SUPORTADAS PELA FERRAMENTA HTML. Aluno: Rodrigo Ristow Orientador: Wilson Pedro Carli

Passa a passo para construir uma página pessoal - Parte 1

Guia de Instalação e Atualização do Sistema Podológico

Tutorial básico para web conferência

Soluções de Acessibilidade. VLibras - Desktop. Manual de Instalação da Ferramenta. Microsoft Windows R. Núcleo de Pesquisa e Extensão / LAViD

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web

Personata Recorder. Manual de Instalação e Configuração

Instalando software MÉDICO Online no servidor

( JUDE Community /2007 ) Por Denize Terra Pimenta Outubro/2007

PROGRAMAÇÃO WEB DO LADO DO CLIENTE

Polycom RealPresence Content Sharing Suite Guia rápido do usuário

Eclipse IDE Dá-se importância aos antepassados quando já não temos nenhum. Francois Chateaubriand

Criando documentação com javadoc

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes

Manual de Configuração de Ambiente para Utilização do Login via Certificado Digital no Cadastro Web

Faturamento Eletrônico - CASSEMS

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

Manual Xerox capture EMBRATEL

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico

AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS

Técnicas de Programação II

1.264 Aula 15. Ambientes de desenvolvimento da rede: Java Script Java Applets Java Servlets Páginas ativas de servidor

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

Implementando plugins para o ImageJ

Programação Visual em Java

Desenvolvedor Web Docente André Luiz Silva de Moraes

Criando um script simples

JDBC Java Database Connectivity

CURSO DE INFORMÁTICA BÁSICA AULA 4 INTERNET

Módulo e-rede Prestashop v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Manual do Painel Administrativo

MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO. Motor Periférico Versão 8.0

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2

Sumário. 1 Tutorial: Blogs no Clickideia

GUIA INTEGRA SERVICES E STATUS MONITOR

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Java Foundation Classes Coleção de pacotes para criação de aplicações completas Desktop Interfaces gráficas (GUIs- Graphical User Interface)

Alertamos que essa é uma configuração avançada e exige conhecimentos técnicos em informática para ser executada.

PROVA DE NOÇÕES DE INFORMÁTICA CÓD. 11

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos

Programação em Rede JDBC

Primeiro contato com JavaScript

PROGRAMAÇÃO ORIENTADA A OBJETOS -INTERFACES GRÁFICAS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Orientação a Objetos

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Transcrição:

Java First-Tier: Aplicações Construção de Applets Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Applets l Programas Java que executam em browsers java enabled JVM que interpreta os bytecodes l Imagem viva em uma página HTML reage a comandos manipulação local muda sua aparência interação (envio de dados) com o servidor 2 Applets: Internet Intranet l Uso de applets na Internet tem limitações incompatibilidade de versões de Java nos browsers download em linhas de baixa capacidade l O ambiente em Intranets é diferente ambiente é controlado redes com taxas de transmissão bem mais elevadas 3 1

Applets l Execução de código Java em um browser definido em uma página do servidor carregado e executado no cliente l Tag HTML especifica onde obter o código do applet (arquivos.class) como posicionar o applet na página l Passagem de parâmetros pela página HTML 4 Protocolo requisita página HTML Cliente retorna página HTML com applet requisita código do applet retorna código do applet Servidor 5 Execução de Applets l Criação de área no browser para o applet l Criação do objeto applet (um panel especial) l Inicialização e execução do applet execução do método init execução do método start l Posterior execução dos métodos stop e destroy 6 2

Ciclo de Vida init() start() stop() destroy() 7 Ciclo de Vida: init l Chamado pelo browser quando o applet é carregado l Responsável pela inicialização do applet processamento de parâmetros criação e adição de componentes de interface l O ambiente do applet pode não estar completo no momento de sua construção está completo quando init é chamado 8 Ciclo de Vida: start l Chamado pelo browser para informar que o applet deve iniciar sua execução após a chamada ao método init toda vez que o usuário retorna à página que contém o applet l Só é necessário se alguma atividade deve ser suspensa quando o usuário deixa a página, e reativada na volta threads, animações, audio 9 3

Ciclo de Vida: stop l Chamado pelo browser para informar que o applet deve interromper sua execução quando a página que contém o applet é substituída imediatamente antes da destruição do applet l As atividades interrompidas serão retomadas com a execução do método start. 10 Ciclo de Vida: destroy l Chamado pelo browser para que o applet libere recursos que tenha alocado por exemplo, um applet com threads usaria o método init para criá-las e o método destroy para destruí-las. l O método stop será sempre chamado antes 11 Hierarquia de Classes java.lang.object java.awt.component java.awt.container java.awt.panel java.applet.applet javax.swing.japplet 12 4

Pacote java.applet l java.applet.applet classe que modela um applet l java.applet.appletcontext interface que modela um visualizador (browser) l java.applet.audioclip interface que modela um clip de áudio 13 Classe Applet l Sub-classe de Panel, do pacote awt l É, essencialmente, um painel inserido em uma página HTML, em um navegador l Embora restrito em algumas funcionalidades (por uma questão de segurança), pode interagir com o usuário como qualquer aplicação gráfica awt 14 Métodos de Applet void init() void start() void stop() void destroy() String getparameter(string name) 15 5

Exemplo de Applet import java.awt.*; import java.applet.*; public class MeuApplet extends Applet { public void init() { String msg = getparameter("mensagem"); Label l = new Label(msg); l.setalignment(label.center); setlayout(new BorderLayout()); add(l, BorderLayout.CENTER); 16 Exemplo de Página <html> <head> <title>teste do MeuApplet</title> </head> <body> <applet code=meuapplet width=300 height=200> <param name="mensagem" value="olá Internet!"> </applet> </body> </html> 17 Outros Métodos de Applet URL getdocumentbase() URL getcodebase() String getappletinfo() String[][] getparameterinfo() 18 6

Fornecendo Informações public String getappletinfo() { return "Exibe uma mensagem na tela"; public String[][] getparameterinfo() { return new String[][] { {"Mensagem", "String", "Mensagem a exibir" ; nome tipo descrição 19 Interface AppletContext l Modela o navegador, isto é, o programa que hospeda o applet l Disponibiliza métodos de conveniência para obter dados do servidor de onde veio o applet imagens, arquivos de áudio l Também disponibiliza métodos de controle do navegador 20 Obtendo o AppletContext l A classe Applet disponibiliza um método específico para este fim: AppletContext getappletcontext() 21 7

Métodos de AppletContext Applet getapplet(string name) Enumeration getapplets() AudioClip getaudioclip(url url) Image getimage(url url) void showdocument(url url) void showdocument(url url, String target) void showstatus(string status) 22 Métodos de Conveniência l Algumas funcionalidades providas pelo contexto podem ser acessadas diretamente através do applet. Para isso, a classe Applet disponibiliza métodos como: void showstatus(string msg) AudioClip getaudioclip(url url) Image getimage(url url, String name) 23 Interface AudioClip l Modela um clip de áudio l Disponibiliza métodos para executar e interromper a execução do clip 24 8

Métodos de AudioClip void play() void loop() void stop() 25 Mais Métodos de Conveniência l Novamente por conveniência, é possível executar um clip de áudio diretamente a partir do applet. Para isso, a classe Applet disponibiliza: void play(url url) void play(url url, String name) 26 import java.awt.*; import java.awt.event.*; import java.applet.*; public class MeuApplet extends Applet { AudioClip clip; public void init() { Button play = new Button("Play"); Button stop = new Button("Stop"); add(play); add(stop); clip = getaudioclip(getdocumentbase(), "spacemusic.au"); play.addactionlistener(new ActionListener() { public void actionperformed(actionevent ev) { clip.loop(); ); stop.addactionlistener(new ActionListener() { public void actionperformed(actionevent ev) { clip.stop(); ); public void stop() { clip.stop(); Exemplo de AudioClip 27 9

Tag HTML para Applets <APPLET CODE=nome da classe WIDTH=largura em pixels obrigatórios! HEIGHT=altura em pixels [ARCHIVE=lista de arquivos jar] [CODEBASE=diretório] [ALT=texto alternativo] [NAME=nome do applet] [ALIGN=alinhamento] [VSPACE=espaço vertical em pixels] [HSPACE=espaço horizontal em pixels] > [<PARAM NAME=nome VALUE=valor>] [<PARAM NAME=nome VALUE=valor>]... [texto alternativo] </APPLET> 28 Obtenção do código do applet l atributo CODE nome da classe que implementa o applet se a classe pertence a um pacote, este deve ser especificado l atributo CODEBASE localização (URL) do código do applet se omitido, é assumida a mesma localização do documento HTML 29 Obtenção do código do applet l atributo ARCHIVE lista de arquivos (.jar) que contém classes e outros recursos que serão pré-carregados 30 10

Exemplos <applet code=meuapplet width=300 height=200> </applet> <applet code=meupacote.meuapplet width=300 height=200> </applet> <applet code=meuapplet codebase=diretoriodosapplets width=300 height=200> </applet> 31 Posicionamento do applet l Semelhante ao de imagens (tag IMG) l Tamanho: atributos WIDTH e HEIGHT l Espaçamento: atributos VSPACE e HSPACE l Alinhamento: atributo ALIGN LEFT, RIGHT TOP, TEXTTOP, MIDDLE, ABSMIDDLE, BASELINE, BOTTOM, ABSBOTTOM 32 Exemplos de alinhamento 33 11

Comunicação entre applets l Applets em uma mesma página podem se comunicar l O atributo NAME especifica um nome para um applet l O método getapplet (de AppletContext) retorna uma referência para um applet a partir de seu nome 34 Acessando outro Applet l No arquivo HTML: <applet code=meuapplet width=300 height=200 name="applet1"> </applet> l Na classe que define um applet: AppletContext ctx = getappletcontext(); MeuApplet applet1 = (MeuApplet)(ctx.getApplet("Applet1")); applet1.recebedados( ); 35 Arquivos.jar l Java Archive (jar) é um formato de arquivo que permite juntar diversos arquivos (classes, imagens, sons) em um único arquivo compactado (como um.zip) l Esse arquivo pode ser transmitido pela rede, do servidor para o cliente, otimizando o processo de troca das informações necessárias para o applet 36 12

Arquivos.jar l São também comumente utilizados para empacotar/distribuir bibliotecas as classes que compõem a biblioteca são armazenadas em um arquivo.jar o arquivo.jar é adicionado ao CLASSPATH l Um arquivo.jar também pode ser usado para distribuir uma aplicação entrada no manifest file especifica a classe principal (main) aplicação 37 Programa jar l O programa jar cria arquivos no formato.jar para serem usados em applets ou aplicações l Um exemplo da sintaxe básica é: jar cf MeuApplet.jar *.class *.au 38 Utilizando o Arquivo.jar l No tag <applet>, podemos especificar o arquivo.jar e a JVM do navegador se encarrega de extrair a(s) classe(s) desse arquivo: <html> <head> <title>teste de Arquivos.jar</title> </head> <body> <applet code=meuapplet archive=meuapplet.jar width=300 height=200></applet> </body> </html> 39 13

Obtendo recursos l A JVM se encarrega de obter as classes do arquivo.jar, mas o mesmo não acontece com outros recursos (arquivos que não são de classes: imagens, textos etc.) l Esses recursos devem ser obtidos de forma especial para que possam ser extraídos do arquivo.jar o carregador ( class loader ) sabe de onde a classe foi extraída e pode extrair o recurso da mesma localização 40 Ajustando o exemplo de AudioClip l É necessário trocar uma linha: clip = getaudioclip(getdocumentbase(), "spacemusic.au"); getaudioclip(meuapplet.class.getresource("spacemusic.au")); URL 41 Segurança l Como o applet é um programa externo que irá executar na máquina do cliente, é muito importante que haja um controle sobre o que ele pode ou não fazer o usuário não tem como impedir sua execução! l Esse controle pode ser menos rigoroso se o applet for assinado 42 14

Modelo Caixa de Areia l Tipicamente, applets executam em um modelo chamado caixa de areia (sandbox), no qual uma série de restrições são impostas uma exceção do tipo SecurityException é lançada se o applet tenta violar uma dessas restrições 43 Restrições de Segurança l No modelo caixa de areia o applet: não pode executar código nativo não pode acessar arquivos locais não pode executar nenhum programa não pode ler propriedades do sistema somente versão do Java e do SO, e separadores tem suas janelas (pop up) identificadas só pode se comunicar com o computador de onde ele veio 44 Applets versus Java 2 l Apenas applets compatíveis com o Java 1.1 podem ser diretamente visualizados nos navegadores Netscape e Internet Explorer l Applets desenvolvidos utilizando recursos do Java 2 precisam de um plug-in instalado para que possam ser visualizados l A Sun Microsystems disponibiliza plug-ins para Netscape e para Internet Explorer 45 15

Mudanças no HTML l Para utilizar o plug-in, é preciso que a página HTML diga isso, o que é feito através de uma mudança no tag HTML l A Sun disponibiliza uma ferramenta que converte automaticamente arquivos HTML para que o plug-in seja utilizado o tag que habilita uso do plug-in é bem mais complexo! 46 Obtenção do Plug-in l O tag HTML gerado pela ferramenta da Sun, além de indicar ao navegador que o plug-in deve ser utilizado, traz a informação de onde este plug-in pode ser obtido caso ele ainda não esteja instalado l O plug-in só precisa ser instalado uma única vez, permanecendo no navegador 47 Applets versus Swing l A biblioteca Swing disponibiliza uma classe JApplet que pode ser utilizada (no lugar da classe Applet) para criar applets utilizando os elementos de interface do Swing assim como um JFrame, um JApplet é um top level container l Um applet swing pode ter uma barra de menu, o que não é possível no applet comum 48 16

Exemplo de JApplet import java.awt.*; import javax.swing.*; public class MeuApplet extends JApplet { public void init() { String msg = getparameter("mensagem"); JLabel l = new JLabel(msg); l.sethorizontalalignment(jlabel.center); getcontentpane().add(l, BorderLayout.CENTER); 49 Desenhando em um Applet l A classe Applet herda de Component o método paint esse método é chamado quando o conteúdo de um componente deve ser pintado l Para desenhar em um applet deve-se redefinir o método paint public void paint(graphics g) l A classe Graphics modela o graphics context que permite que aplicações desenhem sobre componentes 50 Métodos de Graphics void setcolor(color c) void drawrect(int x, int y, int width, int height) void fillrect(int x, int y, int width, int height) void drawoval(int x, int y, int width, int height) void filloval(int x, int y, int width, int height) void drawline(int x1, int y1, int x2, int y2) void drawstring(string str, int x, int y) void setfont(font font) 51 17