Tutorial – Introdução ao ambiente Eclipse

Propaganda
Tutorial – Introdução ao ambiente Eclipse
Rafael Santos
(revisto em 26/10/2003)
Introdução ....................................................................................................................................................................................................................... 1
Instalando o Java Development Kit ................................................................................................................................................................................ 2
Instalando o Eclipse ........................................................................................................................................................................................................ 4
Desinstalando o Eclipse .............................................................................................................................................................................................. 4
Passos para criação e execução de uma classe ............................................................................................................................................................... 4
Primeira execução do Eclipse ..................................................................................................................................................................................... 4
Criando um novo projeto ............................................................................................................................................................................................ 5
Criando um novo pacote em um projeto..................................................................................................................................................................... 6
Criando uma classe em Java em um pacote................................................................................................................................................................ 8
Notas sobre o código criado ..................................................................................................................................................................................... 10
Editando a classe criada............................................................................................................................................................................................ 11
Compilando e executando a classe criada................................................................................................................................................................. 11
Criando, compilando e executando uma segunda classe .......................................................................................................................................... 12
Criando, compilando e executando Applets.............................................................................................................................................................. 15
Introdução
O Eclipse é um ambiente integrado de desenvolvimento gratuito que pode ser usado para desenvolvimento de aplicações em Java, sendo um dos
mais recomendados para isto. O Eclipse não contém módulos para criação de interfaces gráficas, o que considero vantajoso para iniciantes na
linguagem Java, pois o foco deve ser a linguagem e não o aspecto visual de uma aplicação. Versões do Eclipse existem para diversos sistemas
operacionais, o que é outra vantagem. Mais informações podem ser obtidas no site www.eclipse.org.
Este tutorial mostra, passo a passo, como instalar o Java Development Kit (JDK) e o ambiente Eclipse. Versões específicas do JDK e do Eclipse
serão usadas, mas como estes softwares são constantemente atualizados, é possível que existam pequenas diferenças na numeração das versões
mostradas no documento e as existentes nos sites.
Instalando o Java Development Kit
Para instalar o Java 2 Development Kit (J2SDK, também referenciado como JDK neste documento), faça o download do arquivo j2sdk1_4_2_01-windows-i586.exe do site da Sun (http://java.sun.com). Para instalar o JDK, basta clicar duas vezes no ícone do executável.
Após umas janelas com informações sobre o instalador (que desaparecerão sem necessidade de interação), a janela mostrada na Figura 1
aparecerá. Clique no botão “I accept the terms in the license agreement” e depois no botão Next (que será ativado). A janela da Figura 2
aparecerá, e nela você poderá selecionar quais componentes deseja instalar. Por default, todas as opções estarão selecionadas, é aconselhável
deixar assim a não ser que existam restrições no espaço em disco – se houverem, os demonstrativos (Demos) e código-fonte (Source Code) podem
ser desmarcados para instalação. Também é aconselhável manter o caminho de instalação para c:\j2sdk1.4.2_01.
Figura 1 - Licença do JDK
Figura 2 - Customização da instalação
Após a seleção dos componentes para instalação, clique em Next. A Figura 3 aparecerá. Esta janela lista os navegadores instalados e
reconhecidos, e o instalador registrará o Java Plug-In (para execução de applets) para estes navegadores. Clique em Install para prosseguir.
Dependendo da versão do sistema operacional sendo executado e/ou doa Service Packs instalados, você verá a mensagem na Figura 4. Clique em
Continue para prosseguir. Durante a instalação várias janelas com diálogos como o da Figura 5 aparecerão. Não é necessário tomar nenhuma
providência neste passo. Ao final da instalação a janela mostrada na Figura 6 será mostrada. É aconselhável reinicializar o computador após a
instalação (uma janela aparece pedindo confirmação para reinicialização).
Figura 3 - Registro dos navegadores
Figura 4 - Aviso sobre versão do sistema operacional
Figura 5 - Processo de instalação
Figura 6 - Término da instalação do JDK
Você pode testar a instalação do JDK de duas formas: uma é através do Java Web Start, cujo ícone deve ter sido instalado no desktop do
computador. Clique duas vezes neste ícone para executar o programa, sua execução é sinal de que a instalação foi concluída com sucesso.
Alternativamente, abra um terminal (com o menu Iniciar/Programas/Acessórios/Prompt de comando) e digite nele java. No
terminal deverão aparecer mensagens impressas pelo comando java.
Instalando o Eclipse
Primeiro, é necessário copiar o Eclipse do site www.eclipse.org. Neste site, clique em Downloads, e selecione um site para download. Selecione o
Latest Release (clique no Build Name). Aparecerão várias listas de arquivos para download. Localize as listas Platform Runtime Binary e JDT
Runtime Binary. Copie, da lista mostrada em Platform Runtime Binary, o arquivo correspondente ao sistema operacional que você está usando.
Copie também o arquivo eclipse-JDT, que é comum para todas as plataformas – o nome do link para download será dependente da versão do
Eclipse, mas somente um arquivo deve aparecer na lista JDT Runtime Binary. Por exemplo, para o Windows 2000 e versão 2.1.1 do Eclipse, os
arquivos que devem ser copiados são eclipse-platform-2.1.1-win32.zip e eclipse-JDT-2.1.1.zip.
Para instalar o Eclipse, basta descompactar os arquivos em uma localização qualquer. É sugerido descompactar os dois arquivos em
C:\Arquivos de Programas. O diretório eclipse (em minúsculas) será criado automaticamente. Como alguns arquivos existem em
ambos os arquivos .zip a ser descompactados, o descompactador pode mostrar algumas advertências ou pedir para sobreescrever arquivos, o que
pode ser feito sem problemas.
Desinstalando o Eclipse
Se por alguma razão você quiser desinstalar o Eclipse, basta apagar o diretório onde este foi instalado – não existe um mecanismo específico de
desinstalação.
Passos para criação e execução de uma classe
Primeira execução do Eclipse
Execute pela primeira vez o Eclipse, clicando no aplicativo C:\Arquivos de programas\eclipse\eclipse (assumindo que o Eclipse foi instalado no
diretório sugerido). A mensagem Please wait – completing the install aparecerá por alguns segundos, e depois a janela do Eclipse (mostrada na
Figura 7) aparecerá.
Criando um novo projeto
O primeiro passo é criar um novo projeto Java no Eclipse. Um projeto poderá conter vários pacotes e classes relacionados com um tema. Para criar
um novo projeto, clique no botão New Wizard ( ), está localizado logo abaixo do menu File. A janela mostrada na Figura 8 aparecerá.
Figura 7 - Janela inicial do Eclipse
Figura 8 - Janela do New Wizard
No diálogo mostrado na Figura 8, selecione Java no painel esquerdo e Java Project no painel direito e clique no botão Next. A janela
mostrada na Figura 9 aparecerá.
Na janela da Figura 9 entre o nome do projeto sendo criado. Como este nome de projeto será usado para criar um diretório, evite usar caracteres
inadequados para nomes de diretórios. Entre o nome de projeto e clique no botão Next. No exemplo, usei o nome de projeto Exercicios1.
Note que é possível especificar um diretório diferente do default, desmarcando a caixa Use Default e escolhendo o diretório manualmente.
1
É desaconselhável o uso de acentos em nomes de projetos, pacotes e classes – a interpretação de acentos em nomes de arquivos depende da implementação do sistema
operacional e pode causar problemas.
Clique em Next. Se esta for a primeira vez em que um projeto Java é criado no Eclipse, uma janela perguntando se você quer mudar para a
perspectiva2 Java aparecerá – clique Yes. Após isto, a janela da Figura 10 aparecerá.
Figura 9 - Seleção do nome de projeto
Figura 10 - Configurações do projeto
Na janela mostrada na Figura 10 não precisamos entrar nenhuma informação, mas ela poderia ser usada para indicar pacotes adicionais para o
projeto sendo criado. Para terminar a criação do projeto, clique no botão Finish.
Após a criação do projeto, a janela principal do Eclipse deverá estar como mostrada na Figura 11.
Criando um novo pacote em um projeto
Primeiro criaremos um novo pacote em um projeto. Pacotes são usados em Java para agrupar classes que tenham algo em comum (por exemplo,
que façam parte de uma aplicação). No caso de aplicações que devem ser distribuídas, o Eclipse facilita ainda mais a criação do arquivo para
distribuição se colocarmos todas as classes pertencentes a aplicação em um pacote.
2
Conjunto de janelas que tem determinada aparência na tela do Eclipse e que facilita o trabalho com uma determinada ferramenta.
No lado esquerdo da janela principal do Eclipse temos um painel Package Explorer que mostra a hierarquia dos arquivos de projetos (a
árvore pode mostrar quais arquivos existem em quais projetos). Clique na entrada Exercicios para selecioná-la, e clique novamente no botão
New Wizard ( ). A janela mostrada na Figura 8 aparecerá. Desta vez, selecione Java no painel esquerdo e Package no painel direito.
Clique em Next para ir para o próximo passo, cuja janela é mostrada na Figura 12.
Na Figura 12 devemos entrar o nome de um pacote antes de prosseguir. Nomes de pacotes são mais restritos que nomes de projetos: não podem
conter espaços nem caracteres especiais e é sugerido que iniciem com letras minúsculas. Para este exemplo, escolhemos o nome de pacote
capitulo01 (veja a nota de rodapé 1 na página nº 5). Após entrar o nome clique em Finish. A janela principal do Eclipse aparecerá novamente,
como mostrado na Figura 13. A Figura 13 mostra, no painel Package Explorer, que o pacote também usa as bibliotecas padrão de Java
(JRE_LIB).
Figura 11 - Janela principal do Eclipse (depois de adicionar um projeto)
Figura 12 - Criação de um novo pacote
Criando uma classe em Java em um pacote
Com o projeto e o pacote criados, podemos adicionar novas classes no pacote. Para isso, selecione no Package Explorer o pacote no qual
você quer adicionar uma classe e clique no botão New Wizard ( ). A janela mostrada na Figura 8 aparecerá novamente. Desta vez, selecione
Java no painel esquerdo e Class no painel direito. Clique em Next para ir para o próximo passo, cuja janela é mostrada na Figura 14.
Figura 13 - Janela principal do Eclipse (depois da criação de um pacote no projeto)
Figura 14 - Diálogo para criação de uma nova classe
O preenchimento do diálogo que aparece na Figura 14 depende da finalidade da classe a ser criada:
•
Em qualquer caso, o nome da classe deve ser fornecido – é aconselhável usar os padrões de nome sugeridos para classes (primeira letra
maiúscula, alternando entre palavras, evitando acentos).
•
Para criar uma classe simples, que representará um conceito qualquer, não precisaremos selecionar mais nenhuma opção (por default, a
superclasse aparecerá como java.lang.Object no diálogo mas esta não aparecerá explicitamente no código). Para criar uma classe
que herda de outra, devemos selecionar uma Superclasse (usando o botão Browse ou entrando o nome completo da casa no campo
correspondente) e, se for necessário, selecionar a caixa Constructors from superclass. Para classes que implementam
interfaces, devemos usar o botão Add para adicionar as interfaces no campo correspondente. As declarações de extends e
implements podem também ser escritas manualmente depois que o código for gerado.
•
Para criar uma classe que contenha o método main, podemos clicar na caixa próxima ao texto public static void
main(String[] args). Novamente, este trecho de código pode ser escrito manualmente posteriormente.
Para continuar com o exemplo, vamos criar uma classe AloMundo com um método main simples. O diálogo preenchido adequadamente aparece
na Figura 15. Após o preenchimento devemos clicar no botão Finish.
Figura 16 - A classe AloMundo criada no pacote capitulo01
Figura 15 - Diálogo para criação de uma nova classe (preenchido)
A Figura 16 mostra a classe recém-criada – o Eclipse automaticamente abre uma janela do editor que mostra o código criado para a classe.
Os componentes básicos da interface do Eclipse são mostrados na Figura 16. À esquerda temos a janela Package Explorer, que mostra o
conteúdo do projeto e, hierarquicamente, pacotes no projeto, classes nos pacotes e métodos nas classes. No centro temos a área onde abriremos
editores para os arquivos (se clicarmos duas vezes no nome do arquivo no Package Explorer ele será aberto em uma janela do editor). Na
área direita temos a janela de Outline para a classe sendo editada – esta janela mostra os elementos (campos, métodos, etc.) da classe. Na parte
inferior temos a janela de Tasks que mostra quais são as tarefas associadas ao projeto – uma maneira de marcar tarefas a executar pelo
programador.
Notas sobre o código criado
O código criado pelo Eclipse, mostrado de forma parcial na janela central na Figura 16, pode não estar formatado de acordo com as preferências
do programador (o que é o meu caso). Diversas opções de configuração do código gerado podem ser alteradas, selecionando o menu
Window/Preferences e clicando, na árvore de opções do lado esquerdo, em Java/Code Formatter. As opções usadas por mim são
mostradas na Figura 17 – elas se aproximam mais do estilo de código ao qual estou acostumado, mas isto é questão de preferência pessoal.
package capitulo01;
/**
* Mostra uma mensagem simples na tela.
* @author Rafael Santos
*/
public class AloMundo
{
public static void main(String[] args)
{
System.out.println("Alô, Mundo !");
}
}
Figura 18 - O código completo da classe AloMundo
Figura 17 - Preferências do Eclipse para formatação de código
Existem diversas opções no diálogo mostrado na Figura 17, é sugerido que somente sejam modificadas as opções que sejam compreendidas para
evitar surpresas. Algumas opções que podem ser exploradas seguramente são as de geração de código, no menu Java/Templates do diálogo
mostrado na Figura 17. Estas opções permitem o ajuste fino da criação de código automático.
Editando a classe criada
Para continuar com o exemplo, vamos editar a classe. A classe AloMundo completa é mostrada na Figura 18. O editor do Eclipse
automaticamente coloriza e modifica fontes de palavras-chave, comentários, strings e outros elementos de classes em Java, facilitando a sua
leitura. O tipo de fonte e cor usado para os diferentes elementos do código-fonte podem ser customizados com o diálogo mostrado na Figura 17,
no menu Java/Editor, orelha Syntax.
Compilando e executando a classe criada
Uma das capacidades mais úteis do Eclipse é a compilação automática de código. Assim que o código modificado é gravado, todas as classes que
são relacionadas com a modificada são recompiladas automaticamente.
Para executar um programa que tenha o método main adequado, clique no ícone Run (
aparecerá.
Figura 19 - Configuração de execução de classes
). A janela de diálogo mostrada na Figura 19
Figura 20 - Configuração para execução da classe AloMundo
Clique duas vezes no menu Java Application (ou no botão New) e o diálogo da Figura 19 mudará para o da Figura 20. O diálogo está
praticamente preenchido, e não é necessário adicionar mais nada para executar a classe. Ao clicarmos no botão Run, uma janela nova no Eclipse
chamada Console abrirá e mostrará o resultado do programa (Figura 21).
Figura 22 - Diálogo para seleção de superclasse
Figura 21 - Resultado da execução da classe AloMundo
Criando, compilando e executando uma segunda classe
Como segundo exemplo, vamos criar uma classe AloMundoGrafico que mostrará a mensagem “Alô, Mundo !” usando uma interface gráfica.
Esta classe será criada da mesma forma que a AloMundo, exceto que ela herdará da classe JFrame. A seleção da superclasse é feita quando
criamos a nova classe (Figura 14 e Figura 15), clicando no botão Browse... próximo ao campo de texto da superclasse. Este botão abre um
diálogo, mostrado na Figura 22, que permite que entremos os caracteres iniciais da classe sendo procurada em um campo de texto, e com uma
área de seleção que mostra quais classes disponíveis iniciam com os caracteres iniciais.
Para esta segunda classe, escolhemos a superclasse como JFrame e completamos os métodos necessários (o construtor para definir a interface
gráfica da frame e o método main para construir uma instância da própria classe).
Ao editar esta classe, criamos instâncias ou usamos algumas classes que não são importadas por default, como Container, JLabel e Color:
sempre que o Eclipse encontrar, no código-fonte, uma classe que não esteja explicitamente importada pela classe editada, ele marcará a linha com
referências a classes “desconhecidas” com uma marca que pode ser um ícone de lâmpada amarela ou um sinal de pare vermelho (ou,
frequentemente, um em cima do outro). Estas marcações são mostradas na Figura 23. Clique no ícone da lâmpada amarela ou sinal de pare para ter
uma lista de sugestões de correção (mostrada na Figura 24). Para as classes existentes o Eclipse mostrará a opção de importar a classe com nome
completo, é o que faremos. Após aceitar as sugestões, grave o arquivo para que ele seja recompilado, novas sugestões podem aparecer. Quando o
sinal de pare próximo do nome do arquivo na janela do editor desaparecer, o código estará sem erros.
Figura 24 - Sugestões do Eclipse para completar o código gerado
Figura 23 - Marcações de problemas em classes editadas
O código completo desta classe é mostrado na
Figura 25Erro! A origem da referência não foi encontrada.. Para executar esta classe é
) a última
necessário executar um procedimento ligeiramente diferente do mostrado para a primeira aplicação: se clicarmos no ícone Run (
aplicação executara será lançada novamente. Precisamos registrar a classe sendo editada como uma aplicação executável. Para isto, clique no
pequeno triângulo preto do ícone Run, o que trará um menu, mostrado na Figura 26. Neste menu, selecione a opção Run... que trará o diálogo
de configuração de lançamento de aplicações. Este diálogo deve ser similar ao mostrado na Figura 27.
package capitulo01;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
/**
* Mostra a mensagem "Alô, Mundo !" usando uma
* interface gráfica.
* @author Rafael Santos
*/
public class AloMundoGrafico extends JFrame
{
public AloMundoGrafico()
{
super();
Container cp = getContentPane();
JLabel label = new JLabel("Alô, Mundo !");
label.setFont(new Font("Serif",Font.BOLD,48));
label.setForeground(new Color(0,0,180));
cp.add(label);
pack();
show();
}
Figura 26 - Menu Run
public static void main(String[] args)
{
new AloMundoGrafico();
}
}
Figura 25 - Código completo da segunda aplicação
No diálogo mostrado na Figura 27, selecione a entrada Java Application no menu no painel à esquerda e clique em New. O Eclipse
automaticamente preencherá os campos do diálogo usando os dados da classe sendo editada. O diálogo preenchido é mostrado na Figura 28.
Figura 27 - Diálogo para criação de mecanismo de lançamento de aplicação
Figura 28 - Diálogo para criação de mecanismo de lançamento (preenchido)
Ao clicar nos botões Apply ou Run, a aplicação será executada. Para executá-la novamente basta clicar no ícone Run (
executada por último será lançada. O resultado da segunda aplicação é mostrado na Figura 29.
) – a aplicação
Figura 29 - Janela da segunda aplicação
Criando, compilando e executando Applets
Como terceiro exemplo vamos criar, compilar e executar uma Applet. O mecanismo de execução de applets será diferente, pois estas serão
executadas por um navegador.
O primeiro passo é criar uma nova classe em um pacote existente (ou, se for o caso, criar um novo pacote). Para isso, vamos selecionar o pacote
onde queremos inserir a applet e, clicando com o botão direito do mouse, selecionar o menu New/Class. Crie uma classe que herde de
JApplet. O formulário desta classe, preenchido, é mostrado na Figura 30. Podemos selecionar a superclasse (JApplet) clicando no botão
Browse, e digitando as primeiras letras da superclasse (Figura 31). Clique em OK para selecionar a superclasse e em Finish para criar a applet.
Figura 31 - Selecionando a superclasse para a applet
Figura 30 - Criando uma applet (formulário preenchido)
O código criado estará também vazio, isto é, sem métodos ou campos. Uma applet deve ter ao menos o método init, que inicializa a interface
gráfica e prepara a applet para responder a eventos dos usuários. Nesta seção vamos apresentar o código completo de uma calculadora de horas
simples, sem entrar em detalhes da implementação.
O código-fonte completo da applet é mostrado na Figura 32.
package capitulo01;
// Todos estes imports foram incluidos automaticamente pelo Eclipse
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import
import
import
import
import
import
java.awt.GridLayout;
java.awt.Toolkit;
java.awt.event.ActionEvent;
java.awt.event.ActionListener;
java.text.SimpleDateFormat;
java.util.StringTokenizer;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
* Esta classe implementa uma calculadora simples de horas trabalhadas. Atenção foi dada à interface e funcio* namento, mas a classe não faz nada além de cálculos simples.
*/
public class Calculadora extends JApplet implements ActionListener
{
// Este botão fará o envio dos dados (mas nesta applet ele está só de decoração)
private JButton enviar;
// Esta é a matriz das horas trabalhadas por projeto.
private JFormattedTextField[][] horasNoDia;
private JFormattedTextField[] somaDasHoras;
// Para simplificar, teremos somente três dias de trabalho
private final int diasDeTrabalho = 3;
// Para simplificar, teremos projetos constantes (deveriam ser obtidos de um banco de dados)
private final String[] projetos =
{
"Projeto IMBROGLIO",
"Projeto BROUHAHA",
"Projeto SHENANIGAN",
"Projeto PANDEMONIUM",
"Suporte a outros departamentos",
"Outros"
};
/**
* O método init é o mais crítico de uma applet: ele cria a interface com o usuário e registra eventos para os
* componentes desta interface.
*/
public void init()
{
// Vamos manipular o container da applet (interface gráfica)
Container ct = getContentPane();
// Escolhemos o layout de borda
ct.setLayout(new BorderLayout());
// Vamos criar os campos de texto.
horasNoDia = new JFormattedTextField[diasDeTrabalho][projetos.length];
somaDasHoras = new JFormattedTextField[diasDeTrabalho];
// Vamos adicionar uma linda matriz de campos de texto !
// Para isto vamos usar dois JPanels para organização.
JPanel painelDosProjetos = new JPanel(new GridLayout(projetos.length+2,1));
JPanel painelDasHoras = new JPanel(new GridLayout(projetos.length+2,diasDeTrabalho));
// Adicionamos os labels ao painel de projetos. Notem que temos duas linhas a mais no layout: uma para
// as horas (1, 2, 3) e uma para a soma das horas trabalhadas.
painelDosProjetos.add(new JLabel(""));
for(int projeto=0;projeto<projetos.length;projeto++)
{
JLabel umProjeto = new JLabel(" "+projetos[projeto]+" ",JLabel.RIGHT);
painelDosProjetos.add(umProjeto);
}
painelDosProjetos.add(new JLabel("<html><font color=\"#800000\">TOTAL:</font></html>",JLabel.LEFT));
// Adicionamos os campos ao painel de horas trabalhadas.
// Primeiro, os títulos das colunas.
for(int dia=0;dia<diasDeTrabalho;dia++)
{
JLabel título = new JLabel("<html><font size=+2>"+(dia+1)+"</center></html>",JLabel.CENTER);
título.setBackground(new Color(200,220,255));
painelDasHoras.add(título);
}
// Agora, a matriz das horas trabalhadas.
for(int projeto=0;projeto<projetos.length;projeto++)
{
for(int dia=0;dia<diasDeTrabalho;dia++)
{
horasNoDia[dia][projeto] = new JFormattedTextField(new SimpleDateFormat("K:mm"));
horasNoDia[dia][projeto].setText("00:00");
horasNoDia[dia][projeto].setHorizontalAlignment(JTextField.RIGHT);
horasNoDia[dia][projeto].addActionListener(this);
painelDasHoras.add(horasNoDia[dia][projeto]);
}
}
// Finalmente adicionamos os campos com horas somadas
for(int dia=0;dia<diasDeTrabalho;dia++)
{
somaDasHoras[dia] = new JFormattedTextField(new SimpleDateFormat("K:mm"));
somaDasHoras[dia].setText("000:00");
somaDasHoras[dia].setHorizontalAlignment(JTextField.RIGHT);
somaDasHoras[dia].setEditable(false);
painelDasHoras.add(somaDasHoras[dia]);
}
// Criamos o botão para enviar as horas trabalhadas.
enviar = new JButton("Enviar");
enviar.addActionListener(this);
// Este botão será vermelho claro.
enviar.setBackground(new Color(255,200,200));
// Adicionamos os painéis ao conteúdo da applet.
ct.add(painelDosProjetos,BorderLayout.WEST);
ct.add(painelDasHoras,BorderLayout.CENTER);
// Adicionamos o botão ao conteúdo da applet.
ct.add(enviar,BorderLayout.SOUTH);
// Finalmente, modificamos o conteúdo do painel
setContentPane(ct);
}
/**
* Este método será chamado cada vez que um evento de ação for executado. No caso, cada vez que um campo de texto
* for modificado (a tecla ENTER deve ser pressionada) o método será executado. Este método recalcula as horas
* trabalhadas em um dia.
*/
public void actionPerformed(ActionEvent e)
{
// Para cada dia de trabalho...
for(int dia=0;dia<diasDeTrabalho;dia++)
{
// A soma dos minutos do dia é zerada
int somaDoDia = 0;
// Para cada projeto em um dia
for(int projeto=0;projeto<projetos.length;projeto++)
{
// Recuperamos horas e minutos trabalhados como
// uma String.
String quantasHoras = horasNoDia[dia][projeto].getText();
// Vamos recuperar as horas e minutos processando
// a String que os contém.
StringTokenizer st = new StringTokenizer(quantasHoras,":");
int horas = Integer.parseInt(st.nextToken());
int minutos = Integer.parseInt(st.nextToken());
// Adicionamos a soma do dia (em minutos).
somaDoDia += (60*horas)+minutos;
}
// Ao final do dia, recalculamos e reformatamos as horas trabalhadas
int horas = somaDoDia / 60;
int minutos = somaDoDia % 60;
// Deve haver outra maneira de fazer isto, mas esta
// funciona e foi mais rápido assim.
somaDasHoras[dia].setText(formata(horas,3)+":"+formata(minutos,2));
// Só pra mostrar como, mudamos o fundo da célula da soma
// das horas trabalhadas de acordo com o número de minutos.
if (somaDoDia == 0)
somaDasHoras[dia].setBackground(Color.LIGHT_GRAY);
else if (somaDoDia <= 4*60)
somaDasHoras[dia].setBackground(new Color(200,255,200));
else if (somaDoDia <= 8*60)
somaDasHoras[dia].setBackground(new Color(200,200,255));
else
somaDasHoras[dia].setBackground(new Color(255,200,200));
}
}
/**
* Este método auxiliar formata strings contendo valores.
*/
private String formata(int valor,int dígitos)
{
String formatada = ""+valor;
while(formatada.length() < dígitos) formatada = "0"+formatada;
return formatada;
}
}
Figura 32 - Código-fonte da applet
Ao salvar a applet, ela deve ter sido compilada sem erros. Agora vamos criar um arquivo .jar da mesma (o que pode não ser necessário para applets
que são compostas de somente uma classe).
Para criar o .jar, selecione o menu File/Export. A janela mostrada na Figura 33 aparecerá. Selecione a opção JAR file e clique em Next. A janela de
detalhes da exportação (mostrada na Figura 34) aparecerá. Nesta janela, selecione as classes que deseja incluir no .jar – isto pode ser feito classe a
classe ou por pacotes. É aconselhável marcar para exportação somente os arquivos necessários, para evitar que o arquivo .jar fique
desnecessariamente grande. Selecione também um nome de arquivo (sem a extensão .jar) como destino da exportação (no exemplo, usei
minhaapplet). Anote o diretório onde este .jar será criado.
Figura 33 - Janela de exportação de arquivos
Figura 34 - Detalhes da exportação de arquivos .jar
Clique Next para ir para a próxima janela, mostrada na Figura 35. Nesta janela, desmarque as opções de exportar classes com erros ou advertências
de compilação e clique Next. A janela da Figura 36 aparecerá. Não é necessário modificar nada nesta janela, podemos então clicar em Finish para
criar o arquivo .jar.
Figura 35 - Outras opções para exportação de arquivos .jar
Figura 36 - Opções de manifesto para arquivos .jar
Podemos ver o conteúdo do arquivo .jar usando o comando jar, parte do JDK. Executando o comando jar tvf minhaapplet.jar temos como resultado
C:\Documents and Settings\rafael\Desktop\AppTest>jar tvf minhaapplet.jar
25 Tue Apr 01 09:57:22 BRT 2003 META-INF/MANIFEST.MF
920 Tue Apr 01 09:51:08 BRT 2003 capitulo01/Calculadora.class
Devemos agora criar um arquivo HTML simples no mesmo diretório onde o arquivo .jar foi criado. Este arquivo deve conter o trecho
<APPLET CODE = "capitulo01.Calculadora"
ARCHIVE = "minhaapplet.jar"
WIDTH=340 HEIGHT=200>
Oops, nada de applets para você !
</APPLET>
Segue uma descrição básica do conteúdo deste arquivo:
•
•
A descrição da applet está entre <APPLET> e </APPLET>.
Os argumentos para a tag <APPLET> são:
o CODE: diz qual é a classe da applet que será executada, sem a extensão .class. No caso, como a classe faz parte de um pacote,
usamos o nome do pacote como prefixo: capitulo01.Calculadora.
o ARCHIVE: diz qual é o nome do arquivo .jar, que deverá obrigatoriamente estar no mesmo diretório do arquivo HTML.
o WIDTH e HEIGHT: indicam qual é o tamanho da janela da applet, e geralmente são determinados através de tentativa e erro.
• O texto entre <APPLET> e </APPLET> será exibido em navegadores que não tenham suporte a applets.
• O arquivo HTML pode ser formatado à vontade e conter outros elementos gráficos. O importante é que o código que inclui a applet esteja
correto.
Para testar a applet, basta abrir o arquivo HTML em um navegador. Para disponibilizar a applet na Internet/Intranet, basta colocar o arquivo .jar e
o HTML em um diretório visível na Internet/Intranet. A Figura 37 mostra a applet sendo executada em um navegador.
Figura 37 - A applet, sendo executada no Mozilla
Download