Applets - O Retorno: A Nova Geração do Java Plug-in

14
Applets – O Retorno A nova geração dos Plug-ins Java Aprenda sobre o novo Java Plug-in com exemplos práticos em Java e JavaFX SERGE REHEM E ULISSES TELEMACO Resumo: Meio “esquecidas” entre tantas novidades no mundo RIA (Adobe Flash/Flex/Air, Microsoft Silverlight, JavaFX, ...), a nova Arquitetura de Plug-ins pode colocar novamente as Applets como opção a ser considerada. Elas podem ser utilizadas para o desenvolvimento desde pequenos componentes a serem embutidos em páginas web tradicionais (como botões “estilizados”, animações ou gráficos) até aplicações mais completas (como o preenchimento de um cadastro ou questionário) similares a uma aplicação Desktop. A arquitetura atual oferece suporte a praticamente as mesmas vantagens destinadas às aplicações Java WebStart. Iniciaremos relembrando a forma tradicional de construir Applets e mostrando um overview dessa tecnologia. Em seguida apresentaremos as principais novidades da nova arquitetura do Java Plug-in, mostrando exemplos práticos com Java e JavaFX testados em Windows, Linux e Mac OS. Veremos como o uso de JNLP - o mesmo formato destinado às aplicações Java WebStart - permite a customização de uma série de propriedades como, por exemplo, a seleção da JVM específica a ser utilizada, o uso de um espaço próprio de endereçamento para cada Applet, a possibilidade de fornecer parâmetros individuais para a JVM, a opção de mudar a imagem de fundo padrão do Java apresentada no momento de carga, entre outras. Uma das grandes novidades é a funcionalidade de “arrastar-soltar” que permite que uma Applet seja arrastada para “fora do navegador” fazendo-a executar de forma independente. Ao final, são apresentadas sugestões de leituras adicionais para aqueles que desejem maior aprofundamento no tema. Quando nasceu o Java, há cerca 15 anos, os "mini-aplicativos" Java que rodavam no navegador eram seu "grande barato". Na época era comum a discussão "quem é melhor? Applets Java ou ActiveX da Microsoft?". Passado tanto tempo, até então praticamente nenhuma evolução tecnológica significativa aconteceu com as Applets (bom, quanto aos ActiveX, melhor nem falar...). O Java 1.6 update 10 veio para mudar radicalmente esse cenário, apresentando a nova geração dos plug-ins Java. Este artigo cobrirá as principais mudanças na arquitetura de plug-ins, mostrando com exemplos práticos que as Applets definitivamente estão de volta. Relembrando Uma Applet é um tipo especial de programa Java, embutido em uma página HTML, que é executado no contexto de um navegador habilitado para uso da tecnologia Java. Na prática, é uma subclasse de java.applet.Applet (ou javax.swing.JApplet), que fornece uma interface entre o programa e o ambiente do navegador. Embora aprofundar todos conceitos da tecnologia Applet não seja o objetivo principal desse artigo, vamos relembrar a seguir os principais. Para isso, iremos construir uma Applet tradicional, depois introduziremos gradativamente a nova arquitetura de Plug-ins Java. O código a seguir cria uma Applet simples que exibe na tela a mensagem "Olá Java Bahia!". import javax.swing.JApplet; import javax.swing.JLabel; 1

description

Este artigo cobre as principais mudanças na arquitetura de plug-ins Java a partir do JDK1.6update10, mostrando com exemplos práticos que as Applets definitivamente estão de volta. Publicado em http://javabahia.blogspot.com/2010/04/applets-o-retorno-nova-geracao-dos-plug_21.html

Transcript of Applets - O Retorno: A Nova Geração do Java Plug-in

Page 1: Applets - O Retorno: A Nova Geração do Java Plug-in

Applets – O RetornoA nova geração dos Plug-ins Java

Aprenda sobre o novo Java Plug-in com exemplos práticos em Java e JavaFX

SERGE REHEM E ULISSES TELEMACO

Resumo:

Meio “esquecidas” entre tantas novidades no mundo RIA (Adobe Flash/Flex/Air, Microsoft Silverlight, JavaFX, ...), a nova Arquitetura de Plug-ins pode colocar novamente as Applets como opção a ser considerada. Elas podem ser utilizadas para o desenvolvimento desde pequenos componentes a serem embutidos em páginas web tradicionais (como botões “estilizados”, animações ou gráficos) até aplicações mais completas (como o preenchimento de um cadastro ou questionário) similares a uma aplicação Desktop. A arquitetura atual oferece suporte a praticamente as mesmas vantagens destinadas às aplicações Java WebStart. Iniciaremos relembrando a forma tradicional de construir Applets e mostrando um overview dessa

tecnologia. Em seguida apresentaremos as principais novidades da nova arquitetura do Java Plug-in, mostrando exemplos práticos com Java e JavaFX testados em Windows, Linux e Mac OS. Veremos como o uso de JNLP - o mesmo formato destinado às aplicações Java WebStart - permite a customização de uma série de propriedades como, por exemplo, a seleção da JVM específica a ser utilizada, o uso de um espaço próprio de endereçamento para cada Applet, a possibilidade de fornecer parâmetros individuais para a JVM, a opção de mudar a imagem de fundo padrão do Java apresentada no momento de carga, entre outras. Uma das grandes novidades é a funcionalidade de “arrastar-soltar” que permite que uma Applet seja arrastada para “fora do navegador” fazendo-a executar de forma independente. Ao final, são apresentadas sugestões de leituras adicionais para aqueles que desejem maior aprofundamento no tema. Quando nasceu o Java, há cerca 15 anos, os "mini-aplicativos" Java que rodavam no navegador

eram seu "grande barato". Na época era comum a discussão "quem é melhor? Applets Java ou ActiveX da Microsoft?". Passado tanto tempo, até então praticamente nenhuma evolução tecnológica significativa aconteceu com as Applets (bom, quanto aos ActiveX, melhor nem falar...). O Java 1.6 update 10 veio para mudar radicalmente esse cenário, apresentando a nova geração dos plug-ins Java. Este artigo cobrirá as principais mudanças na arquitetura de plug-ins, mostrando com exemplos práticos que as Applets definitivamente estão de volta.

Relembrando

Uma Applet é um tipo especial de programa Java, embutido em uma página HTML, que é executado no contexto de um navegador habilitado para uso da tecnologia Java. Na prática, é uma subclasse de java.applet.Applet (ou javax.swing.JApplet), que fornece uma interface entre o programa e o ambiente do navegador. Embora aprofundar todos conceitos da tecnologia Applet não seja o objetivo principal desse artigo, vamos relembrar a seguir os principais. Para isso, iremos construir uma Applet tradicional, depois introduziremos gradativamente a nova arquitetura de Plug-ins Java.

O código a seguir cria uma Applet simples que exibe na tela a mensagem "Olá Java Bahia!".

import javax.swing.JApplet;import javax.swing.JLabel;

1

Page 2: Applets - O Retorno: A Nova Geração do Java Plug-in

public class OlaJavaBahia extends JApplet { @Override public void start() { getContentPane().add(new JLabel("Olá " + getParameter("nome") + "!")); }}

Para executá-lo em um navegador será necessário criar uma página HTML e utilizar a tag <applet>1. Exemplo:

<html> <body> <h1>Minha primeira Applet</h1> <applet code="OlaJavaBahia.class" width="200" height="50"> <param name="nome" VALUE="JavaBahia"/> Seu navegador não suporta Applets! </applet> </body></html>

E o resultado seria:

Figura 1. Applet Tradicional

Limitações conhecidas

As tradicionais Applets possuem várias limitações. Algumas delas decorre do fato de a JRE e o navegador executarem no mesmo espaço de endereçamento:

• O navegador "congela" quando o JRE é iniciado pela primeira vez;• Um travamento no JRE trava também o navegador;• Apenas uma versão de JRE pode ser usada por vez;• O desenvolvedor não tem o controle sobre qual versão de JRE está sendo utilizada, nem

pode passar parâmetros para a JVM (para, por exemplo, configurar memória);

1 A tag <applet> é recomendada para ambientes onde a portabilidade de navegador é um requisito importante (a Internet por exemplo). Em ambientes mais controlados, como as Intranets, é possível também usar as tags <object>, que funcionará apenas no Internet Explorer, e <embed>, para a família de navegadores Mozilla.

2

Page 3: Applets - O Retorno: A Nova Geração do Java Plug-in

Outras limitações estão associadas às restrições (necessárias) de segurança:• As Applets não tem acesso ao Sistema de Arquivos e portanto não podem ler ou escrever

arquivos na máquina do cliente.• As Applets não se estabelecer conexões com outras máquinas, exceto com o servidor de

origem da Applet.• As Applet não conseguem iniciar ou finalizar um programa na máquina do cliente.

Nova Geração do Java Plug-inA nova geração do Java Plug-in traz uma arquitetura totalmente redesenhada e resolve vários

problemas conhecidos da geração anterior. Dentre as principais vantagens dessa nova arquitetura, destacamos o fato de a JVM ser executada em um contexto independente do navegador. Assim, caso ocorra algum erro de execução em uma Applet específica, o novo Java Plug-in consegue tratar o problema sem afetar o funcionamento do navegador. O Quadro 1 resume as principais vantagens.

Quadro 1 – Vantagens da Nova Arquitetura do Java Plug-inMaior Confiabilidade A Applet pode ser configurada para utilizar uma JVM independente do navegador.

Nesse caso, o Java Plug-in detecta e trata os problemas sem que o navegador seja afetado.

Suporte a JNLP O novo Java Plug-in oferece as mesmas facilidades destinadas a aplicações Java WebStart, permitindo carregar Applets diretamente a partir de arquivos JNLP (Java Network Launching Protocol). É possível inclusive acessar as APIs JNLP para persistência, acesso ao sistema de arquivos e outras funcionalidades.

Argumentos de linha de comando por Applet

Pode-se especificar parâmetros para a JVM (semelhante aos parâmetros passados por linha de comando) por Applet. Dessa forma, é possível configurar, por exemplo, o tamanho do heap de memória ou funcionalidades de aceleração de hardware 2D.

Suporte a múltiplas versões de JRE

Agora é possível explicitar qual versão de JRE deve ser utilizada pela Applet. Cada instância individual de um Applet pode exigir executar uma versão específica de JRE

Melhor comunicação Java/JavaScript

Houve uma considerável melhora na comunicação entre JavaScript e Java Applet com compatibilidade entre os navegadores garantida. A API JavaScript pode ser usada para: detectar JRE, instalar/atualizar JRE, executar Applets, acionar programas Java WebStart, etc.

Melhor controle do ciclo de vida de uma Applet

O comportamento das chamadas aos métodos de controle do ciclo de vida da API Applet (init, start, stop e destroy) agora estão mais determinísticos e a portabilidade entre os navegadores aperfeiçoada.

Melhor configuração do espaço de memória

A quantidade máxima de memória que podia ser configurada para uma Applet era limitada na versão anterior do Java Plug-in. Essa limitação foi retirada da nova versão e as Applets podem ser configuradas para utilizar a mesma quantidade de memória das aplicações de linha de comando.

Melhor experiência do usuário

Melhora de responsividade do navegador fazendo o carregamento de Applets em segundo plano. As Applets são carregadas em background, então o navegador continua respondendo normalmente. A Applet aparece na página web apenas quando estiver totalmente pronta para ser executada.

Suporte melhorado para Windows Vista

Assinando as Applets, é possível que neste ambiente elas possuam os mesmo privilégios que aplicações comuns.

Applets com JNLPO Java Network Launch Protocol, JNLP, é a forma padrão de realizar a distribuição e instalação

de aplicações Java WebStart. A nova arquitetura de plug-ins do Java permite a utilização do mesmo descritor JNLP, o que fará com que a Applet se comporte como uma aplicação convencional acionada via WebStart. Retomando o exemplo anterior, poderíamos reescrever a tag <applet> da seguinte forma:

3

Page 4: Applets - O Retorno: A Nova Geração do Java Plug-in

 <applet code="javabahia.javaplugin.OlaJavaBahia" width="200" height="50">   <param name="nome" value="JavaBahia">   <param name="jnlp_href" value="olajavabahia.jnlp"> </applet>

Nesse segundo exemplo pressupomos que a classe OlaJavaBahia pertence ao pacote javabahia.javaplugin e que é compilada em novojavaplugin.jar. Observe que o parâmetro jnlp_href aponta para o arquivo JNLP da listagem abaixo. Vamos analisá-lo com mais detalhe.

1. <?xml version="1.0" encoding="UTF-8"?>2. <jnlp href="olajavabahia.jnlp">3. <information>4. <title>Olá JavaBahia Applet</title>5. <vendor>JavaBahia.org</vendor>6. </information>7. <resources>8. <j2se version="1.4+" href="http://java.sun.com/products/autodl/j2se" />9. <jar href="novojavaplugin.jar" main="true" />10. </resources>11. <applet-desc name="Olá JavaBahia Applet"12. main-class="javabahia.javaplugin.OlaJavaBahia"13. width="1"14. height="1" /> 15. </jnlp>

O elemento <information> (linhas 3 a 6) é requerido e contém informações sobre o autor e vendedor da Applet. As linhas 7 a 10 (tag <resources>) apresentam novidades interessantes: A tag <j2se version="1.4+">2 informa a versão mínima da JVM3 aceita para executar a Applet. A tag <jar> aponta para o arquivo do tipo JAR que contém o código executável da Applet. A tag <applet-desc> (linhas 11 a 14) informa o nome da Applet (atributo name) e indica o nome da classe principal (atributo main-class> e pode sobrecarregar alguns parâmetros da tag <applet> do arquivo HTML. Neste exemplo, apesar de fornecidos, os atributos width e height do JNLP são desconsiderados, prevalecendo as propriedades definidas na tag <applet>. Isso ocorre porque pressupõe-se que o navegador sabe melhor como acomodar a Applet na página web, e apenas ele pode suportar altura e largura relativos à pagina (ex: width=“40%”). Consulte a página oficial do novo Java Plug-in para saber detalhes sobre todos os parâmetros suportados e as formas de resolver outros tipo de conflito.

Parâmetros de Configuração da JVM

Além da opção de disponibilizar uma Applet a partir de um arquivo JNPL, é possível utilizar a tag <applet> associada a uma série de parâmetros (tag <param>) específicos da JVM. Veremos a partir de agora os três principais tipos de configuração para JVM: separate_jvm, java_version e java_arguments. Veja o exemplo abaixo:

<applet code="javabahia.javaplugin.OlaJavaBahia" width="200" height="50"> ...

2 A tag <j2se> também suporta argumentos de linha de comando a serem passados para a JVM, como propriedades do sistema ou o tamanho máximo do heap, Caso nenhuma JVM ativa atenda o desejado, uma nova instância será lançada. Consulte as referências ao final do artigo para mais detalhes.

3 Uma vez que o suporte a JNLP no Java Plug-in só está disponível a partir da versão 1.6update10, especificações tipo “1.4+” basicamente não tem serventia. Especificações de versão farão mais sentido quando pudermos usar por exemplo “1.7+” (a partir da versão 1.7), “1.7*” (qualquer update da família 1.7) ou “1.6.0_13” (apenas na verão 1.6 udpate 13).

4

Page 5: Applets - O Retorno: A Nova Geração do Java Plug-in

<param name="separate_jvm" value="true" /> <param name="java_version" value="1.5+" /> <param name="java_arguments" value="-Xmx128m" /></applet>

Através do primeiro parâmetro (separate_jvm) uma Applet pode ser executada em uma instância própria da JVM, separada de todas as outras Applets. Isso pode ser útil ao migrar certos tipos de aplicações Desktop para uso direto no browser. O segundo parâmetro (java_version) permite especificar a versão mínima da JVM necessária para executar a Applet. Já o terceiro parâmetro (java_arguments) foi usado para configurar o total máximo de memória que a Applet pode utilizar em tempo de execução.

Funcionalidade “Arrastar-Soltar”Uma das novidades interessantes da nova arquitetura do Java Plug-in é a possibilidade de arrastar

uma Applet e soltá-la na área de trabalho. No entanto, vale ressaltar que essa é uma funcionalidade experimental e que não há garantias que ela continuará sendo suportada nas próximas versões do Java Plug-in. Para habilitar essa funcionalidade basta acrescentar o parâmetro <param name=“draggable” value=“true” /> dentro da tag <applet>. Para testar, utilize a combinação (tecla Alt + botão esquerdo do mouse) e arraste a Applet para a sua área de trabalho. Você irá observar um pequeno botão de fechar no canto superior direito. A API Applet permite ainda customizar o gesto do “arrastar”, o botão fechar e a imagem de carregamento (substituindo a tradicional xícara de café do Java). Enquanto a página de onde veio a Applet estiver aberta, ela poderá retornar ao seu lugar de

origem. Se a página for fechada, recarregada ou navegada para uma outra, a Applet é desconectada do navegador e passa a executar de forma independente.

Em algumas plataformas Linux essa combinação (tecla Alt + botão esquerdo do mouse) é normalmente usada para mover janelas, então é preciso alterar o comportamento dessa combinação no gerenciador de janelas desse Sistema Operacional. Opcionalmente, pode-se customizar a combinação no Applet. Para isso implemente na Applet um método público com a interface public boolean isAppletDragStart(MouseEvent e);

Integração com JavaScript

A especificação LiveConnect, usada para integração entre JavaScript e Java Applet, foi totalmente reimplementada. A nova arquitetura garante maior confiabilidade, compatibilidade entre navegadores e performance, tanto para Javascript chamando Applets quanto para Applets chamando métodos Javascript.Veja um exemplo de Javascript invocando método de um Applet.

import javax.swing.JApplet;import javax.swing.JLabel;

public class OlaJavaBahia extends JApplet {

@Override public void start() { getContentPane().add(new JLabel("Olá " + getParameter("nome") + "!")); } public String upperCase(String s){

5

Page 6: Applets - O Retorno: A Nova Geração do Java Plug-in

return s.toUpperCase(); }}

A chamada ao método upperCase é feita de forma transparente:

<html> <body> <h1>Minha primeira Applet</h1> <applet id="app" code="OlaJavaBahia.class" archive="OlaJavaBahiaApplet.jar" width="200" height="50"> <param name="nome" VALUE="Java Bahia"/> Seu navegador não suporta Applets! </applet> <script language="javascript"> var msg = app.upperCase("Olá Java Bahia!!!"); document.write(msg); </script> </body></html>

E o resultado pode ser visto na Figura 2 abaixo:

Figura 2. Integração entre JavaScript e Applet

Evitando tornar o artigo muito longo, não vamos detalhar aqui a integração com JavaScript. Para maiores informações (como por exemplo como chamar um método JavaScript dentro de um Applet), favor consultar a documentação do LiveConnect indicada no final desse artigo.

Preparando o navegador O novo Java Plug-In foi projeto para funcionar no Internet Explorer 6 e 7, no Windows XP e

Vista, e no Firefox 3, no Windows XP ou Vista, Solaris e Linux. A configuração do Internet Explorer deve ser feita pelo Painel de Controle Java (Java Control

Panel), acessível pelo Painel de Controle do Windows XP ou Vista, habilitando a nova geração do Java Plug-In na guia Avançado (Advanced), como na Figura 3.

6

Page 7: Applets - O Retorno: A Nova Geração do Java Plug-in

Figura 3. Habilitando o novo Java Plug-in no Windows

No Linux ou Solaris a configuração Firefox 3 é um pouquinho mais complicada. É necessário criar manualmente um link simbólico (symlink) para a novo Java Plug-in. Para isso, abra um terminal e vá para a pasta plugins em seu diretório de instalação do Firefox (por exemplo: /etc/lib/firefox-3.0.10/plugins) e crie execute o comando ln -s apontando para sua pasta <JRE_HOME | JDK_HOME>/jre/lib/{i386,sparc}/libnpjp2.so. Por exemplo:

cd /opt/firefox/pluginsln -s /usr/jvm/lib/sun-java6/jre/lib/i386/libnpjp2.so

7

Page 8: Applets - O Retorno: A Nova Geração do Java Plug-in

Applets JavaFX com NetBeans

Explorando ainda mais as possibilidades do novo Java Plug-in, veremos agora como criar uma Applet com JavaFX, uma plataforma de software multimídia para a criação e disponibilização de Internet Rica, que pode ser executada em vários dispositivos diferentes. Totalmente baseada em Java, JavaFx permite criar aplicações de altíssima qualidade visual e interatividade para rodar em desktop, browser, telefone celulares, video-games, Blu-rays e até na TV Digital. Entrar em detalhes foge do escopo do artigo, então recomendamos uma visita ao http://javafx.com para quem deseja conhecer um pouco mais.Usando o NetBeans 6.8 (a versão mais recente, até a escrita deste artigo, da única IDE com suporte

a JavaFX), crie um novo projeto da Categoria JavaFX e escolha JavaFX Script Application. Preencha as informações como na Figura 4.

Figura 4. Criação de um projeto JavaFX no NetBeans 6.8

Depois de criar o projeto OlaJavaBahiaJavaFX, clique com o botão direito em seu nome e escolha a opção Properties (Propriedades). Na categoria Run (Executar), crie uma nova Configuração clicando em New (Novo) e digite Applet. Selecione a opção Run in Browser (Executar no Navegador). Sua tela deverá estar como na Figura 5.

Page 9: Applets - O Retorno: A Nova Geração do Java Plug-in

Figura 5: Configuração do projeto JavaFX no Netbeans 6.8

Em seguida, ainda na janela de Propriedades, escolha a categoria Application (Aplicação) e preencha como na Figura 6. Observe que a opção Draggable Applet deve estar marcada.

Figura 6. Alterando preferências do projeto

O código gerado automaticamente pelo NetBeans já pode ser executado. Será aberta uma página no navegador mostrando uma página HTML contendo código JavaFX Script exibindo o texto “Application Content” abaixo do título OlaJavaBahiaJavaFX em negrito. No subdiretório dist do seu projeto, observe que, além dos arquivos do tipojar, foram criados um arquivo HTML e dois JNLP (um para execução no navegador como Applet, outro como aplicativo Java WebStart).

Page 10: Applets - O Retorno: A Nova Geração do Java Plug-in

Figura 7. Arquivos gerados automaticamente no build do NetBeans

Na listagem a seguir é mostrado o código Java FX Script do arquivo Main.fx. As linhas destacadas em negrito foram alteradas ou acrescentadas para dar um melhor comportamento visual à Applet, alterando as cores de frente e fundo e adicionando um efeito chamado reflexão.

Main.fx1. package olajavabahiajavafx;2.3. import javafx.stage.Stage;4. import javafx.scene.Scene;5. import javafx.scene.text.Text;6. import javafx.scene.text.Font;7. import javafx.scene.effect.Reflection;8. import javafx.scene.shape.Rectangle;9. import javafx.scene.paint.Color;10.11. Stage {12. title: "Olá JavaBahia JavaFX"13. scene: Scene {14. width: 25015. height: 8016. content: [17. Rectangle {18. x: 0, y: 019. width: 200, height: 8020. fill: Color.BLACK21. }22. Text {23. font: Font {24. size: 1625. }26. x: 1027. y: 3028. content: "Olá JavaBahia"29. fill: Color.WHITE30. effect: Reflection {fraction: 0.9 topOpacity: 0.9 topOffset: 0.1};31. }32. ]33. }34. }

O arquivo OlaJavaBahiaJavaFX_browser.jnlp, mostrado em seguida, traz várias tags que não foram discutidas até aqui. Não vamos explicá-las porque consideramos que elas são bastante auto-explicativas. Caso o leitor tenha alguma dúvida sobre essas tags, sugerimos a leitura das referências indicadas no final desse artigo.

Page 11: Applets - O Retorno: A Nova Geração do Java Plug-in

1.<?xml version="1.0" encoding="UTF-8"?>2.<jnlp spec="1.0+" codebase="file:/home/serge/NetBeansProjects/OlaJavaBahiaJavaFX/dist/" 3. href="OlaJavaBahiaJavaFX_browser.jnlp">4. <information>5. <title>OlaJavaBahiaJavaFX</title>6. <vendor>JavaBahia</vendor>7. <homepage href=""/>8. <description>OlaJavaBahiaJavaFX</description>9. <offline-allowed/>10. <shortcut>11. <desktop/>12. </shortcut>13. </information>14. <security>15. <all-permissions/>16. </security>17. <resources>18. <j2se version="1.5+"/>19. <property name="jnlp.packEnabled" value="true"/>20. <property name="jnlp.versionEnabled" value="true"/>21. <extension name="JavaFX Runtime" href="http://dl.javafx.com/1.2/javafx-rt.jnlp"/>22. <jar href="OlaJavaBahiaJavaFX.jar" main="true"/>23. </resources>24. <applet-desc name="OlaJavaBahiaJavaFX" main-class="com.sun.javafx.runtime.adapter.Applet" 25. width="200" height="200">26. <param name="MainJavaFXScript" value="olajavabahiajavafx.Main">27. </applet-desc>28. <update check="background">29. </jnlp>

O código do arquivo OlaJavaBahiaJavaFX.html, contudo, será alterado para os fins didáticos. Observe que as linhas de 14 a 26 foram comentadas, pois o NetBeans não gera o código usando a tag <applet> que estamos estudando aqui. Em seu lugar, é usada a tag <script> e dentro dele, o código JavaFX que carrega o script Main.fx no browser. No lugar desse trecho, pusemos uma chamada padrão usando a tag <applet> e fornecendo o parâmetro draggable=“true”.

1.<html>

2. <head>

3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

4. <title>OlaJavaBahiaJavaFX</title>

5. </head>

6. <body>

7. <h1>OlaJavaBahiaJavaFX</h1>

8. <applet code="OlaJavaBahiaJavaFX" archive="OlaJavaBahiaJavaFX.jar" width="200" 9. height="60">

10. <param name="jnlp_href" value="OlaJavaBahiaJavaFX_browser.jnlp"/>

11. <param name="draggable" value="true"/>

12. </applet>

13. <!--

14. <script src="http://dl.javafx.com/1.2/dtfx.js"></script>

15. <script>

16. javafx(

17. {

18. archive: "OlaJavaBahiaJavaFX.jar",

19. draggable: true,

20. width: 200,

21. height: 200,

Page 12: Applets - O Retorno: A Nova Geração do Java Plug-in

22. code: "olajavabahiajavafx.Main",

23. name: "OlaJavaBahiaJavaFX"

24. }

25. );

26. </script>

27. -->

28. </body>

29. </html>

Por fim, o resultado final o resultado final da nossa “AppletFX” pode ser conferido na Figura 8.

Figura 8. Visualização da Applet feita em JavaFX

ConclusãoEste artigo procurou relembrar as tradicionais Applets, apresentando as novas possibilidades

disponíveis para Java e JavaFX a partir da Java SE 1.6 update 10 com o novo Java Plug-In. Depois de muito tempo “estagnadas”, o leitor deve ter percebido que a Sun correu atrás do prejuízo e apresenta agora opções bem interessantes para que o desenvolvedor possa voltar a considerar o uso Applets em suas aplicações e páginas Web.

Linkshttp://java.sun.com/docs/books/tutorial/deployment/applet/index.htmlApplet Tutorial http://java.sun.com/j2se/1.4.2/docs/guide/misc/applet.htmlSintaxe completa da tag Applet http://java.sun.com/javase/6/docs/technotes/guides/plugin/developer_guide/contents.htmlGuia do Java Plugin, antes do Jdk1.6u10 http://java.sun.com/javase/6/docs/technotes/guides/jweb/index.htmlApplets e Aplicações Java WebStart para o Jdk1.6u10

Page 13: Applets - O Retorno: A Nova Geração do Java Plug-in

http://java.sun.com/developer/technicalArticles/javase/6u10_appletsA nova feature Draggable Applet no Java SE 6 Update 10 Plug-Inhttps://jdk6.dev.java.net/plugin2Notas de versão da Nova Geração do Java Plug-In http://developers.sun.com/learning/javaoneonline/2008/pdf/TS-6290.pdfApresentação no JavaOne 2008 sobre sobre o novo Java Plug-inhttps://jdk6.dev.java.net/plugin2/jnlp/Suporte a JNLP no novo Java Plug-in https://jdk6.dev.java.net/plugin2/version-selection/Seleção de versão da JVM com o novo Java Plug-inhttps://jdk6.dev.java.net/plugin2/liveconnect/Integração entre Java Applet e Javascripthttps://scenegraph-demos.dev.java.net/demo-applets.htmlDemonstrações de Applets usando o novo Java Plug-in

Page 14: Applets - O Retorno: A Nova Geração do Java Plug-in

Serge Rehem ([email protected]) é PMP, MBA em Administração pela Unifacs, especialista em Sistemas Distribuídos pela UFBA. Analista do Serpro/Salvador desde 1997, atualmente coordena a equipe técnica do Framework Demoiselle, na projeção da Coordenação Estratégica de Tecnologia (Cetec) na regional Salvador. É líder do JavaBahia e mantém o blog bazedral.blogspot.com, sobre trabalho colaborativo nas empresas.

Ulisses Telemaco ([email protected]) é idealizador, fundador e mantenedor do projeto JEEBrasil. Formado em Ciência da Computação pela UFRN. Mestrando em Mecatrônica pela UFBA. Palestrante em vários eventos Java como JustJava, Abaporu, Natal Java Day, Salvador Java Day, Maratona 4 Java, entre outros. Participou ativamente da organização dos JUGs JavaBahia e JavaRN. Atualmente trabalha como Arquiteto de Software na OWSE Informática no Rio de Janeiro. Reforça o time do SouJava na terra maravilhosa.