usando applets no netbeans - Luís Alberto Martins Palhares de Melo

Propaganda
USANDO APPLETS NO NETBEANS
(WEB APPLICATION)...
...E A APPLET CHAMA ALGUM PACOTE EXTERNO
(por Luis Alberto M Palhares de Melo – Julho/2011)
PASSO 1
Na estrutura do Netbeans vamos ter:
Pacote externo (aqui chamado de jcenpack)
Uma applet java (aqui chamada de Teste_Applet) que vai usar jcenpack
Uma web application (aqui chamada de Teste_AppletNaWeb) que vai chamar a
applet java (que está em Teste_Applet)
Veja na figura 1 abaixo, o Netbeans e a aba “Projetos” como vai ficar no final:
Figura 1
PASSO 2
Dos diversos pacotes que estão em jcenpack, vamos mais a frente usar na Applet (que
estará em Teste_Applet), a função fDataEmDDMMAAAA (veja Anexo 3) que está na
classe CvarString dentro do pacote pkcen.util. Veja na Figura 2
Figura 2
PASSO 3
Pronto... supondo que esteja OK com jcenpack, deve-se “Limpar e Construir” (Clean
and Build) estes pacotes de utilitários... Veja na Figura 3 a aba “Arquivos” mostrando o
arquivo JAR (jcenpack.jar) que será mais à frente embutido na Applet e na
webapplication...
Figura 3
PASSO 4
Agora vamos construir um “pacote” com diversas applets, das quais, algumas precisarão
chamar funções (utilitários) que estão em jcenpak.jar ....
(1) Criar o novo aplicativo chamado Teste_Applet
(2) Criar um pacote para applets java. No exemplo foi criado pacote01
(3) Dentro de pacote01 criam-se as classes java de applet desejadas. No exemplo foram
criadas as applets t01, t02 e t03. t03 usará método de classe que está em jcenpack
(4) Note na Figura 4 abaixo (e Anexo 2) a classe (applet) t03 que usa a função
fDataEmAAAAMMDD que está em jcenpack.jar
Figura 4
Pergunta: Como Teste_Applet vai “acessar” jcenpack.jar ?
Resposta:
(1) clique com o botão direito do mouse sobre o nome Teste_Applet na aba “Projetos”
(2) no menu suspenso clique sobre a opção “Propriedades”
(3) aparecerá a janela de propriedades do projeto
(4) clique sobre a opção “bibliotecas” e, em seguida sobre o botão “Adicionar
JAR/pasta”.
As janelas abertas devem ser as que estão mostradas na figura 5 abaixo
Figura 5
(5) Após clicar sobre o botão “Adicionar JAR/pasta”, vai aparecer uma janela e, então,
deve-se procurar a pasta “dist” do projeto jcenpack. É na pasta dist que se encontra
jcenpack.jar. Se este arquivo não existir, é porquê ainda não foi efetuado o PASSO 3
(ver acima). Veja a Figura 6 abaixo referente à captura de jcenpack.jar como
biblioteca para o projeto Teste_Applet.
Figura 6
(7) Após clicar no botão “open”, jcenpak.jar será incorporado como um arquivo da
biblioteca do projeto Teste_Applet. Veja a Figura 7 abaixo:
Figura 7
PASSO 5
Vamos agora testar a Applet t03 (apenas a applet... ela ainda não está embutida em
webapplication !!!)...
(1) clique com o botão direito do mouse sobre o nome Teste_Applet na aba “Projetos”
(2) no menu suspenso clique sobre a opção “Limpar e construir”
(3) Se foi CONSTRUÍDO COM SUCESSO, então clique com o botão direito do mouse
sobre a classe t03.java e escolha a opção de menu suspenso “Executar arquivo”. Veja
Figura 8
Figura 8
(4) Se tudo estiver OK, a classe t03 irá acionar apresentar na janela AppletViwer o
seguinte (Figura 9) :
Figura 9
PASSO 6
Estando tudo OK, proceda “limpar e construir” para o projeto Teste_Applet. Será gerado
então o arquivo Teste_Applet.jar (localizado na pasta dist do respectivo projeto). Apenas
para visualizar, observe o “mapa” que é oarquivo Teste_Applet.jar. Veja seu conteúdo
através da aba “Arquivos”. Veja a Figura 10 abaixo:
FIGURA 10
PASSO 7
Agora que temos a applet, vamos construir a webapplication Teste_AppletNaWeb que
chamará applets do arquivo Teste_Applet.jar.
(1) Após criar a webapplication Teste_AppletNaWeb no Netbeans, codificamos o
seguinte dentro do arquivo index.jsp (ver Anexo 2), para testar a applet t03 via web...
(ver figura 11)
Figura 11
(2) Note na Figura 11, que na webapplication, é fundamental citar na opção archive, o
arquivo .jar que contém as applets, e também o arquivo .jar que contém classes e
métodos de classes que as applets irão chamar !!!! Sem isso a webapplication não
funciona !!!!
(3) agora falta embutir na webapplication os arquivos Teste_applet.jar e jcenpack.jar !!!
(4) como fazer isso ?
Pergunta: Como embutir Teste_Applet.jar e jcenpack.jar na
webapplication Teste_AppletNaWeb ?
Resposta:
(1) clique com o botão direito do mouse sobre o nome Teste_AppletNaWeb na aba
“Projetos”
(2) no menu suspenso clique sobre a opção “Propriedades”
(3) aparecerá a janela de propriedades do projeto.
(4) clique sobre a opção “empacotamento” e, em seguida sobre o botão “adicionar
arquivo/pasta”.
(5) Após clicar sobre o botão “adicionar arquivo/pasta”, vai aparecer uma janela e,
então, deve-se procurar a pasta “dist” do projeto jcenpack. É na pasta “dist” que se
encontra jcenpack.jar. Se este arquivo não existir, é porquê ainda não foi efetuado o
PASSO 3 (ver acima).
(5) Em seguida clique novamente sobre o botão “adicionar arquivo/pasta”, desta vez para
adicionar Teste_Applet.jar.
(6) Ao final, os dois arquivos estarão empacotados no projeto Teste_AppletNaWeb. Veja
a Figura 12 abaixo:
Figura 12
PASSO 8
Estando tudo OK, proceda “limpar e construir” para o projeto Teste_AppletNaWeb.
Será gerado então o arquivo Teste_AppletNaWeb.jar (localizado na pasta dist do
respectivo projeto)
(1) Apenas para verificar a estrutura do arquivo .war da webapplication, clique na aba
“Arquivos” e sobre a pasta Teste_AppletNaWeb expanda o conteúdo da pasta dist e
do arquivo Teste_AppletNaWeb.war. Veja a figura 13 abaixo:
Figura 13
(2) Agora é possível executar a applet na Web...
PASSO 9
Vamos agora testar a Applet t03 chamada pela webapplication através de index.jsp.
(1) clique com o botão direito do mouse sobre o nome Teste_AppletNaWeb na aba
“Projetos”
(2) no menu suspenso clique sobre a opção “Limpar e construir”
(3) Se foi CONSTRUÍDO COM SUCESSO, então clique com o botão direito do mouse
sobre o arquivo index.jsp e escolha a opção de menu suspenso “Executar arquivo”. Veja
Figura 14
Figura 14
(4) Se tudo estiver OK, o arquivo index.jsp será executado num browser e irá apresentar
o seguinte (Figura 15) :
Figura 15
MINHA DÚVIDA ...
Conseguir fazer funcionar eu consegui....
Mas acho que não precisaria empacotar jcenpack.jar no projeto da webapplication
(Teste_AppletNaWeb). No projeto da webapplication só precisaria empacotar
Teste_Applet...
Afinal, jcenpack.jar, que está como biblioteca em Teste_Applet já serviria para t03
(que está em Teste_Applet) acessar CvarString e pegar o método
fDataEmAAAAMMDD.
Mas quando eu tentei fazer Teste_AppletNaWeb só empacotado com Teste_Applet
eu obtenho o seguinte erro. Veja a figura 16 abaixo....
FIGURA 16
Imagino que deva ter alguma forma de só precisar empacotar Teste_Applet.jar e não
empacotar jcenpack.jar na webapplication.... Se alguém souber onde está o meu erro
por favor me informe.
Meu e-mail é: [email protected]
ANEXOS
Anexo 1 – Listagem do conteudo do arquivo index.jsp
package pacote01;
import java.applet.Applet;
import pkcen.util.CVarString;
import java.awt.Graphics;
public class t03 extends Applet {
CVarString vTeste = new CVarString();
String vData = "";
@Override
public void paint(Graphics g) {
vData = vTeste.fDataEmAAAAMMDD("27/07/1976");
g.drawString("Data em formato AAAAMMDD = " + vData, 70, 25);
g.drawOval(10,10,50,50);
g.drawRect(70,70,200,90);
g.drawRect(1,1,9,9);
g.drawLine(1,1,40,40);
}
}
Anexo 2 – Listagem do conteudo do arquivo t03.java
<%@page contentType="text/html" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Mini Tutorial - Applets no Netbeans</title>
</head>
<body>
<h1>Teste de chamada via Web da applet T03</h1>
<hr>
<applet code="pacote01.t03" archive="Teste_Applet.jar, jcenpack.jar" width="300"
height="200">
</applet>
<hr>
<p>
FIM DO TESTE
</body>
</html>
Anexo 3 – Listagem do conteudo do arquivo CVarString.java
package pkcen.util;
public class CVarString {
public CVarString() {
}
//-------------------------------------------------------------------------------------------------public String fDataEmAAAAMMDD(String aData) {
String vData = aData;
int i
= 0;
int vLen = 0;
String vDia = "";
String vMes = "";
String vAno = "";
int vTemBarra = 0;
vLen = vData.length() - 1;
//---> Tem comprimirnto entre 6 e 10 caracteres ?
if ( (vData.length() < 6) || (vData.length() > 10) ) {
return aData;
}
//---> Tem exatamente duas barras (/ ou - ou \) ??
vTemBarra = 0;
for (i = 0; i <= vLen; i++) {
if ( (vData.charAt(i) == '-') || (vData.charAt(i) == '/') || (vData.charAt(i) == '\\') ) {
vTemBarra++;
}
}
if (vTemBarra != 2) {
return aData;
}
//---> OK... prosseguir...
if (vLen >= 0) {
i = 0;
//---> Dia..
vDia = "";
while ( (i <= vLen)
&& (vData.charAt(i) != '-') &&
(vData.charAt(i) != '/') && (vData.charAt(i) != '\\')) {
vDia = vDia + vData.charAt(i);
i++;
}
if (vDia.length() <= 1) {
vDia = "0" + vDia;
}
//---> Mes..
i++;
vMes = "";
while ( (i <= vLen)
&& (vData.charAt(i) != '-') &&
(vData.charAt(i) != '/') && (vData.charAt(i) != '\\')) {
vMes = vMes + vData.charAt(i);
i++;
}
if (vMes.length() <= 1) {
vMes = "0" + vMes;
}
//---> Ano..
i++;
vAno = "";
while (i <= vLen) {
vAno = vAno + vData.charAt(i);
i++;
}
if ( (Integer.parseInt(vAno) >= 71) && (Integer.parseInt(vAno) <= 99) ) {
vAno = "19" + vAno;
}
if ( (Integer.parseInt(vAno) >= 0) && (Integer.parseInt(vAno) <= 70) ) {
vAno = "20" + vAno;
}
}
//---> Return..
vData = vAno + vMes + vDia;
return vData;
}
} //--- Fim da classe
*** FIM ***
Download