Cristiano Trindade Segunda-feira, 15 de outubro de 2001

APPLETS x Aplicativos Independentes

Olá pessoal!

Conforme combinado na semana passada, vamos analisar hoje quais são as principais diferenças entre applets e aplicativos independentes (stand-alone) em Java.

A grande maioria das classes e métodos Java pode ser aplicada tanto em applets quando em aplicativos independentes. Cada um possui seus prós e contras. Isso ocorre porque os applets rodam em browsers, o que acaba de certo modo criando alguns limites (principalmente limites de segurança, em regras de I/O) relativos ao navegador. A liberdade em operações com arquivos e redes acaba sendo mais restrita do que quando trabalhamos com aplicativos independentes. Podemos, contudo, aproveitar recursos extras oriundos do próprio browser (uma barra de status, por exemplo) quando escrevemos applets, o que não poderia ser feito em um aplicativo independente. Enfim, tudo dependerá das suas necessidades e dos seus objetivos ao iniciar um projeto Java.

Vamos traçar um pequeno paralelo agora entre um código Java que gera um applet e outro que gera um aplicativo independente. Ambos apresentarão o famoso Olá Mundo (Hello Word), um exemplo clássico em livros e tutoriais sobre linguagens de programação.

APPLET

import java.applet.*;
import java.awt.*;
public class ola extends Applet
{
public void paint(Graphics g) // chamando paint automaticamente
{
g.setColor(Color.red);
g.drawString("Olá Mundo");
}
}

Aplicativo independente

public class ola
{
public static void main(String args[])
{
System.out.println("Ola Mundo");
}
}

OBS.: Observe que no aplicativo independente não colocamos acento na letra "a", devido à possíveis problemas com caracteres especiais no DOS.

Como veremos mais adiante, existem algumas declarações (em especial no início do código) que irão diferenciar um applet de um aplicativo Java independente. Não declaramos, por exemplo, a importação do pacote java.applet (import java.applet.*). Um aplicativo independente invoca o método main, o que não ocorre com um applet Java. Além disso, um aplicativo não poderá ser visualizado em um browser ou no appletviewer. Não pode também ser chamado em um documento HTML, como o applet. Ao invés disso, utilizamos o interpretador Java, como veremos em breve. Como vamos apresentá-lo logo abaixo da linha do comando no DOS, também não iremos fazer referência (neste caso em especial) ao pacote AWT (que contém todos os objetos gráficos e métodos de desenho da linguagem). Com o tempo, iremos observaar mais algumas diferenças entre os dois tipos de aplicação Java.

Por fim, vamos analisar um pouco mais a fundo o JDK que você baixou para desenvolvr aplicações Java. Você pode observar que ele já vem com aplicações-demo para que você possa ler o código-fonte. Na pasta /lib, encontram-se as os pacotes de classes (análogos às bibliotecas de funções em C/C++).

São oito os pacotes de classes do JDK. Segue a descrição deles:

-java.lang
Esse pacote possui classes necessárias para o funcionamento básico do ambiente de desenvolvimento, como manipulação de strings e gerenciamento de threads, além de possuir uma classe para operações matemáticas. Possui também classes para o tratamento de exceções, a classe System e a classe básica Object.

-java.io
Possui classes para operações com arquivos e fluxos.

-java.util
Possui classes com funções utilitárias, como manipulação de datas, estrutura de arquivos e análise de strings.

-java.applet
Possui classes básicas para o funcionamento do applet, "ligando-o" ao ambiente no ual ele será rodado (um browser, por exemplo).

-java.awt
Pacote fundamental do JDK, possuido as classes que compõe a interface do applet. Possui alguns sub-packages (java.awt.image, java.awt.peer, java.awt.net) que serão vistos abaixo. É formado por classes que fornecem interatividade ao applet (caixas de texto, botões, drop-down etc.).

-java.awt.image
É formado por classes de manipulação de imagens e efeitos gráficos.

-java.awt.peer
Possui classes que fazem a comunicação entre o pacote AWT e a plataforma básica do ambiente.

-java.awt.net
É formado por classes que gerenciam o funcionamento do Java em ambientes compartilhados. Possui classes de sockets cliente / servidor, além de manipulação de URL's.

Bem, ficamos hoje por aqui. Na semana que vem, conheceremos as palavras-chave da linguagem e conheceremos com maiores detalhes quais são os recursos gerais da linguagem.

Qualquer dúvida, envie um email. Será um prazer ajudá-lo.

Abraço!