Vivemos em uma época em que a integração de tecnologias é fundamental. Não há mais espaço para isolamento. Um exemplo típico são os navegadores web. A quantidade de componentes desenvolvidos para eles fez com que agissem cada vez mais como “cola”, provendo um ambiente para que elementos muito diversos pudessem se comunicar e se integrar.

A utilização de applets em páginas web, em alguns casos é uma solução excelente. Por exemplo, se você precisa acessar um hardware específico no computador do usuário, como um leitor de smart cards, um applet é a solução. Nesse caso, seria mais interessante se o applet pudesse se comunicar com o restante da página web e preencher um formulário com os dados processados. A integração entre componentes da página e o applet também é vista nos conhecidos teclados numéricos dos sites bancários.

Veremos neste artigo como integrar applets Java a outros componentes de uma página web e como código JavaScript pode fazer chamadas a métodos de um applet; ou seja, demonstraremos a comunicação nas duas direções entre elementos web (acessando o modelo DOM) e applets.

Para desenvolver o exemplo, usaremos o IDE Eclipse com o WTP (Web Tools Project). No site do WTP (eclipse.org/webtools) existe uma versão do Eclipse com este plug-in incluso. Se você já tem o Eclipse instalado, pode também baixar e instalar somente o WTP do site de atualizações do Callisto. Todos os arquivos e códigos do exemplo estarão disponíveis no site da Java Magazine.

Um pouco de teoria

Para entender melhor os exemplos, precisamos inicialmente definir o conceito de DOM (Document Object Model). De forma sucinta, o DOM é uma estrutura hierárquica de componentes em uma página web que podem ser acessados e alterados. Todos os componentes dentro de uma página web (figuras, tabelas, textos, formulários etc.) fazem parte da estrutura DOM. Isso inclui os applets, pois estão inseridos nas páginas web. A Figura 1 ilustra o DOM de uma página HTML simples.

Figura 1. DOM de uma página HTML simples
Figura 1. DOM de uma página HTML simples

Acesso aos componentes

Há várias maneiras de acessar os componentes do DOM. A mais tradicional é através de um identificador (ID). O código JavaScript a seguir acessa um componente do DOM que possui o ID “appletJM”:


            <script>

                var meuApplet= document.getElementByID(‘appletJM’);
            
            </script>
        

A definição de um identificador, normalmente se dá através do atributo id>. Veja alguns exemplos de componentes com identificadores:


            <applet id="appletJM" />

<table id=”tabela01” />

<img id=”minhaFigura” />
        

Agora, vamos explorar como um applet pode acessar os componentes do DOM. De início já temos um problema. Embora o applet seja inserido na página com um tag HTML, sua funcionalidade, como sabemos, é toda implementada por código Java (referenciado pelo tag).

Para que o applet acesse o DOM ou funções JavaScript, usaremos uma API que estabelece este canal de comunicação. Tal suporte é dado pelas classes da API netscape.javascript, fornecida pela Netscape. O arquivo desta biblioteca acompanha a distribuição do Java Runtime Enviroment (JRE). É o plugin.jar, localizado dentro do diretório lib da instalação do JRE (um path típico, no JDK 6 para Windows, seria C:\Arquivos de programas\Java\jdk1.6.0\jre\lib).

A principal classe desta API, e a que usaremos no nosso exemplo, é a classe JSObject. Seguem alguns dos seus principais métodos:

  • JSObject.getWindow() – Retorna uma referência ao objeto window do JavaScript. Este objeto fornece informações sobre a janela atual do navegador. Por exemplo, para acessar o conteúdo da URL você usaria window.location.
  • JSObject.call(String, Object[]) – Chama uma função JavaScript através de dois parâmetros; o primeiro é o nome da função e o segundo contém os seus argumentos.
  • ...

    Quer ler esse conteúdo completo? Tenha acesso completo